]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/libsystemd/sd-device/test-sd-device-thread.c
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
10 #include "device-util.h"
12 #define handle_error_errno(error, msg) \
19 static void* thread(void *p
) {
22 *d
= sd_device_unref(*d
);
27 int main(int argc
, char *argv
[]) {
32 r
= sd_device_new_from_syspath(&loopback
, "/sys/class/net/lo");
34 return handle_error_errno(r
, "Failed to create loopback device object");
36 FOREACH_DEVICE_PROPERTY(loopback
, key
, value
)
37 printf("%s=%s\n", key
, value
);
39 r
= pthread_create(&t
, NULL
, thread
, &loopback
);
41 return handle_error_errno(r
, "Failed to create thread");
43 r
= pthread_join(t
, NULL
);
45 return handle_error_errno(r
, "Failed to wait thread finished");
48 return handle_error_errno(r
, "loopback device is not unref()ed");