]>
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
[]) {
30 const char *key
, *value
;
33 r
= sd_device_new_from_syspath(&loopback
, "/sys/class/net/lo");
35 return handle_error_errno(r
, "Failed to create loopback device object");
37 FOREACH_DEVICE_PROPERTY(loopback
, key
, value
)
38 printf("%s=%s\n", key
, value
);
40 r
= pthread_create(&t
, NULL
, thread
, &loopback
);
42 return handle_error_errno(r
, "Failed to create thread");
44 r
= pthread_join(t
, NULL
);
46 return handle_error_errno(r
, "Failed to wait thread finished");
49 return handle_error_errno(r
, "loopback device is not unref()ed");