ReactOS 0.4.16-dev-2491-g3dc6630
threadpool.c File Reference
#include "k32_vista.h"
Include dependency graph for threadpool.c:

Go to the source code of this file.

Functions

BOOL WINAPI DECLSPEC_HOTPATCH TpSimpleTryPost (PTP_SIMPLE_CALLBACK callback, PVOID userdata, TP_CALLBACK_ENVIRON *environment)
 
BOOL WINAPI DECLSPEC_HOTPATCH TrySubmitThreadpoolCallback (PTP_SIMPLE_CALLBACK callback, PVOID userdata, TP_CALLBACK_ENVIRON *environment)
 

Function Documentation

◆ TpSimpleTryPost()

BOOL WINAPI DECLSPEC_HOTPATCH TpSimpleTryPost ( PTP_SIMPLE_CALLBACK  callback,
PVOID  userdata,
TP_CALLBACK_ENVIRON environment 
)

Definition at line 3243 of file threadpool.c.

3245{
3246 struct threadpool_object *object;
3247 struct threadpool *pool;
3249
3250 TRACE( "%p %p %p\n", callback, userdata, environment );
3251
3252 object = RtlAllocateHeap( GetProcessHeap(), 0, sizeof(*object) );
3253 if (!object)
3254 return STATUS_NO_MEMORY;
3255
3256 status = tp_threadpool_lock( &pool, environment );
3257 if (status)
3258 {
3259 RtlFreeHeap( GetProcessHeap(), 0, object );
3260 return status;
3261 }
3262
3263 object->type = TP_OBJECT_TYPE_SIMPLE;
3264 object->u.simple.callback = callback;
3265 tp_object_initialize( object, pool, userdata, environment );
3266
3267 return STATUS_SUCCESS;
3268}
LONG NTSTATUS
Definition: precomp.h:26
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
Definition: heap.c:616
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
Definition: heap.c:634
#define STATUS_NO_MEMORY
Definition: d3dkmdt.h:51
#define GetProcessHeap()
Definition: compat.h:736
static IPrintDialogCallback callback
Definition: printdlg.c:326
static void tp_object_initialize(struct threadpool_object *object, struct threadpool *pool, PVOID userdata, TP_CALLBACK_ENVIRON *environment)
Definition: threadpool.c:2026
@ TP_OBJECT_TYPE_SIMPLE
Definition: threadpool.c:163
static NTSTATUS tp_threadpool_lock(struct threadpool **out, TP_CALLBACK_ENVIRON *environment)
Definition: threadpool.c:1874
#define STATUS_SUCCESS
Definition: shellext.h:65
#define TRACE(s)
Definition: solgame.cpp:4
Definition: ps.c:97

Referenced by init_threadpool(), RtlQueueWorkItem(), and TrySubmitThreadpoolCallback().

◆ TrySubmitThreadpoolCallback()

BOOL WINAPI DECLSPEC_HOTPATCH TrySubmitThreadpoolCallback ( PTP_SIMPLE_CALLBACK  callback,
PVOID  userdata,
TP_CALLBACK_ENVIRON environment 
)

Definition at line 9 of file threadpool.c.

11{
12 NTSTATUS status = TpSimpleTryPost( callback, userdata, environment );
13 if (!NT_SUCCESS(status))
14 {
16 return FALSE;
17 }
18
19 return TRUE;
20}
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:33
#define SetLastError(x)
Definition: compat.h:752
BOOL WINAPI DECLSPEC_HOTPATCH TpSimpleTryPost(PTP_SIMPLE_CALLBACK callback, PVOID userdata, TP_CALLBACK_ENVIRON *environment)
Definition: threadpool.c:3243
NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)

Referenced by cache_connection(), netconn_resolve(), queue_task(), and winhttp_request_Send().