ext/asyncengine/ae_handle_common.h in asyncengine-0.0.1.testing1 vs ext/asyncengine/ae_handle_common.h in asyncengine-0.0.2.alpha1

- old
+ new

@@ -1,20 +1,47 @@ #ifndef AE_HANDLE_COMMON_H #define AE_HANDLE_COMMON_H -VALUE cAsyncEngineCData; -ID att_cdata; -ID att_handle_terminated; -ID id_method_call; +#define AE_CLOSE_UV_HANDLE(handle) \ + uv_close((uv_handle_t *)handle, ae_uv_handle_close_callback); -void init_ae_handle_common(); +#define GET_CDATA_FROM_SELF \ + struct_cdata* cdata; \ + Data_Get_Struct(self, struct_cdata, cdata) -VALUE ae_store_block(VALUE); -VALUE ae_get_block(VALUE); -VALUE ae_remove_block(VALUE); -void ae_manage_exception(int); -void ae_handle_close_callback_0(uv_handle_t*); -int ae_protect_block_call_0(VALUE); +#define CHECK_UV_HANDLE_IS_OPEN \ + if (! (cdata->_uv_handle)) \ + return Qfalse; + +#define GET_CDATA_FROM_SELF_AND_CHECK_UV_HANDLE_IS_OPEN \ + GET_CDATA_FROM_SELF; \ + CHECK_UV_HANDLE_IS_OPEN + + +void init_ae_handle_common(void); + +VALUE ae_store_handle(VALUE); +VALUE ae_get_handle(VALUE); +VALUE ae_remove_handle(VALUE); + +VALUE ae_store_proc(VALUE); +VALUE ae_get_proc(VALUE); +VALUE ae_remove_proc(VALUE); + +void ae_uv_handle_close_callback(uv_handle_t*); +int ae_get_last_uv_error_int(void); +VALUE ae_get_uv_error(int uv_errno); +VALUE ae_get_last_uv_error(void); +void ae_raise_uv_error(int uv_errno); +void ae_raise_last_uv_error(void); + +VALUE ae_proc_call_0(VALUE proc); +VALUE ae_proc_call_1(VALUE proc, VALUE param); +VALUE ae_proc_call_2(VALUE proc, VALUE param1, VALUE param2); +VALUE ae_proc_call_3(VALUE proc, VALUE param1, VALUE param2, VALUE param3); + +VALUE ae_run_with_error_handler(void* function, VALUE param); +VALUE ae_take_gvl_and_run_with_error_handler(void* function); #endif /* AE_HANDLE_COMMON_H */ \ No newline at end of file