]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/libudev/test-udev-device-thread.c
78fd3b24bf5973069c2ca06169b6b96a00ed3ba6
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
10 #define handle_error_errno(error, msg) \
17 static void* thread(void *p
) {
18 struct udev_device
**d
= p
;
20 *d
= udev_device_unref(*d
);
25 int main(int argc
, char *argv
[]) {
26 struct udev_device
*loopback
;
27 struct udev_list_entry
*entry
, *e
;
31 loopback
= udev_device_new_from_syspath(NULL
, "/sys/class/net/lo");
34 return log_tests_skipped_errno(errno
, "Loopback device not found");
36 return handle_error_errno(errno
, "Failed to create loopback device object");
39 entry
= udev_device_get_properties_list_entry(loopback
);
40 udev_list_entry_foreach(e
, entry
)
41 printf("%s=%s\n", udev_list_entry_get_name(e
), udev_list_entry_get_value(e
));
43 r
= pthread_create(&t
, NULL
, thread
, &loopback
);
45 return handle_error_errno(r
, "Failed to create thread");
47 r
= pthread_join(t
, NULL
);
49 return handle_error_errno(r
, "Failed to wait thread finished");
52 return handle_error_errno(r
, "loopback device is not unref()ed");