X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fthreadpool-internals.h;h=069157c182d043a9bf0940bddb89ac4f67f62e54;hb=f03a1b538bfb0d9be810688e8713731e122320b5;hp=10e9330b6fbac9578f11f77adeb1c5a34071e98f;hpb=8ef4e4703172fd32ada3f74b22df5203b4683493;p=mono.git diff --git a/mono/metadata/threadpool-internals.h b/mono/metadata/threadpool-internals.h index 10e9330b6fb..069157c182d 100644 --- a/mono/metadata/threadpool-internals.h +++ b/mono/metadata/threadpool-internals.h @@ -1,7 +1,34 @@ #ifndef _MONO_THREADPOOL_INTERNALS_H_ #define _MONO_THREADPOOL_INTERNALS_H_ -void mono_thread_pool_remove_socket (int sock) MONO_INTERNAL; -gboolean mono_thread_pool_is_queue_array (MonoArray *o) MONO_INTERNAL; +#include +#include +#include +#include +#include +#include + +typedef struct { + mono_mutex_t io_lock; /* access to sock_to_state */ + int inited; // 0 -> not initialized , 1->initializing, 2->initialized, 3->cleaned up + MonoGHashTable *sock_to_state; + + gint event_system; + gpointer event_data; + void (*modify) (gpointer p, int fd, int operation, int events, gboolean is_new); + void (*wait) (gpointer sock_data); + void (*shutdown) (gpointer event_data); +} SocketIOData; + +void mono_thread_pool_remove_socket (int sock); +gboolean mono_thread_pool_is_queue_array (MonoArray *o); +void mono_internal_thread_unhandled_exception (MonoObject* exc); + +//TP internals the impls use +void check_for_interruption_critical (void); +void socket_io_cleanup (SocketIOData *data); +MonoObject *get_io_event (MonoMList **list, gint event); +int get_events_from_list (MonoMList *list); +void threadpool_append_async_io_jobs (MonoObject **jobs, gint njobs); #endif