23 #include <winpr/winpr.h>
24 #include <winpr/wtypes.h>
34 typedef void (*apc_treatment)(LPVOID arg);
48 apc_treatment completion;
49 LPVOID completionArgs;
58 WINPR_APC_ITEM *last, *next;
70 pthread_mutex_t mutex;
72 WINPR_APC_ITEM *head, *tail;
73 BOOL treatingCompletions;
78 void apc_register(WINPR_THREAD* thread, WINPR_APC_ITEM* addItem);
79 APC_REMOVE_RESULT apc_remove(WINPR_APC_ITEM* item);
80 BOOL apc_collectFds(WINPR_THREAD* thread, WINPR_POLL_SET* set, BOOL* haveAutoSignaled);
81 int apc_executeCompletions(WINPR_THREAD* thread, WINPR_POLL_SET* set,
size_t startIndex);
82 void apc_cleanupThread(WINPR_THREAD* thread);