]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/libudev/test-udev-device-thread.c
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
11 #define handle_error_errno(error, msg) \
18 static void* thread(void *p
) {
19 struct udev_device
**d
= p
;
21 *d
= udev_device_unref(*d
);
26 int main(int argc
, char *argv
[]) {
27 struct udev_device
*loopback
;
28 struct udev_list_entry
*entry
, *e
;
32 loopback
= udev_device_new_from_syspath(NULL
, "/sys/class/net/lo");
35 return log_tests_skipped_errno(errno
, "Loopback device not found");
37 return handle_error_errno(errno
, "Failed to create loopback device object");
40 entry
= udev_device_get_properties_list_entry(loopback
);
41 udev_list_entry_foreach(e
, entry
)
42 printf("%s=%s\n", udev_list_entry_get_name(e
), udev_list_entry_get_value(e
));
44 r
= pthread_create(&t
, NULL
, thread
, &loopback
);
46 return handle_error_errno(r
, "Failed to create thread");
48 r
= pthread_join(t
, NULL
);
50 return handle_error_errno(r
, "Failed to wait thread finished");
53 return handle_error_errno(r
, "loopback device is not unref()ed");