Allow user APCs with NULL 'func' (just wake up the thread).
diff --git a/scheduler/synchro.c b/scheduler/synchro.c
index 8c82f40..ec73de7 100644
--- a/scheduler/synchro.c
+++ b/scheduler/synchro.c
@@ -106,7 +106,7 @@
for (i = 0; i < len / sizeof(void*); i += 2)
{
PAPCFUNC func = (PAPCFUNC)apc[i];
- func( (ULONG_PTR)apc[i+1] );
+ if ( func ) func( (ULONG_PTR)apc[i+1] );
}
}
return reply.signaled;
diff --git a/server/thread.c b/server/thread.c
index 9af06ac..bf8a2ca 100644
--- a/server/thread.c
+++ b/server/thread.c
@@ -482,11 +482,6 @@
int thread_queue_apc( struct thread *thread, void *func, void *param )
{
struct thread_apc *apc;
- if (!func)
- {
- SET_ERROR( ERROR_INVALID_PARAMETER );
- return 0;
- }
if (!thread->apc)
{
if (!(thread->apc = mem_alloc( MAX_THREAD_APC * sizeof(*apc) )))