Loading cm.c +1 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,7 @@ struct CMtrans_services_s CMstatic_trans_svcs = {INT_CMmalloc, INT_CMrealloc, IN add_buffer_to_pending_queue, INT_CMConnection_dereference, INT_CMConnection_add_reference, INT_CMConnection_failed, CMwake_server_thread }; static void INT_CMControlList_close(CMControlList cl, CManager cm); Loading cm_transport.h +1 −0 Original line number Diff line number Diff line Loading @@ -87,6 +87,7 @@ typedef struct CMtrans_services_s { CMTransport_add_buffer_to_pending_queue add_buffer_to_pending_queue; CMTransport_connection_close connection_deref; CMTransport_connection_close connection_addref; CMTransport_connection_close connection_fail; CMTransport_wake_comm_thread_func wake_comm_thread; } *CMtrans_services; #define DROP_CM_LOCK(svc, cm) (svc)->drop_CM_lock((cm), __FILE__, __LINE__) Loading cmenet.c +17 −0 Original line number Diff line number Diff line Loading @@ -201,11 +201,24 @@ enet_service_network(CManager cm, void *void_trans) enet_conn_data = event.peer->data; enet_conn_data->read_buffer_len = -1; svc->connection_fail(enet_conn_data->conn); } } } } static void enet_service_network_lock(CManager cm, void *void_trans) { transport_entry trans = (transport_entry) void_trans; enet_client_data_ptr ecd = (enet_client_data_ptr) trans->trans_data; CMtrans_services svc = ecd->svc; ACQUIRE_CM_LOCK(svc, cm); enet_service_network(cm, void_trans); DROP_CM_LOCK(svc, cm); } static void read_wake_fd_and_service(CManager cm, void *void_trans) Loading Loading @@ -390,6 +403,7 @@ initiate_conn(CManager cm, CMtrans_services svc, transport_entry trans, /* Initiate the connection, allocating the two channels 0 and 1. */ peer = enet_host_connect (sd->server, & address, 1, 0); enet_peer_ping_interval (peer, 10); peer->data = enet_conn_data; svc->trace_out(cm, "ENET ======== On init Assigning peer %p has data %p\n", peer, enet_conn_data); Loading @@ -416,6 +430,7 @@ retry: svc->trace_out(cm, "ENET ======== Assigning peer %p has data %p\n", event.peer, enet_connection_data); event.peer->data = enet_connection_data; ((enet_conn_data_ptr)enet_connection_data)->peer = event.peer; enet_peer_ping_interval (event.peer, 10); goto retry; } svc->trace_out(cm, "Connection to %s:%d succeeded.\n", inet_ntoa(sin_addr), address.port); Loading Loading @@ -747,6 +762,8 @@ libcmenet_LTX_non_blocking_listen(CManager cm, CMtrans_services svc, svc->fd_add_select(cm, enet_host_get_sock_fd (server), (select_list_func) enet_service_network, (void*)cm, (void*)trans); svc->add_periodic_task(cm, 1, 0, (CMPollFunc) enet_service_network_lock, (void*)trans); svc->trace_out(enet_data->cm, "CMENET Adding read_wake_fd as action on fd %d", enet_data->wake_read_fd); Loading Loading
cm.c +1 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,7 @@ struct CMtrans_services_s CMstatic_trans_svcs = {INT_CMmalloc, INT_CMrealloc, IN add_buffer_to_pending_queue, INT_CMConnection_dereference, INT_CMConnection_add_reference, INT_CMConnection_failed, CMwake_server_thread }; static void INT_CMControlList_close(CMControlList cl, CManager cm); Loading
cm_transport.h +1 −0 Original line number Diff line number Diff line Loading @@ -87,6 +87,7 @@ typedef struct CMtrans_services_s { CMTransport_add_buffer_to_pending_queue add_buffer_to_pending_queue; CMTransport_connection_close connection_deref; CMTransport_connection_close connection_addref; CMTransport_connection_close connection_fail; CMTransport_wake_comm_thread_func wake_comm_thread; } *CMtrans_services; #define DROP_CM_LOCK(svc, cm) (svc)->drop_CM_lock((cm), __FILE__, __LINE__) Loading
cmenet.c +17 −0 Original line number Diff line number Diff line Loading @@ -201,11 +201,24 @@ enet_service_network(CManager cm, void *void_trans) enet_conn_data = event.peer->data; enet_conn_data->read_buffer_len = -1; svc->connection_fail(enet_conn_data->conn); } } } } static void enet_service_network_lock(CManager cm, void *void_trans) { transport_entry trans = (transport_entry) void_trans; enet_client_data_ptr ecd = (enet_client_data_ptr) trans->trans_data; CMtrans_services svc = ecd->svc; ACQUIRE_CM_LOCK(svc, cm); enet_service_network(cm, void_trans); DROP_CM_LOCK(svc, cm); } static void read_wake_fd_and_service(CManager cm, void *void_trans) Loading Loading @@ -390,6 +403,7 @@ initiate_conn(CManager cm, CMtrans_services svc, transport_entry trans, /* Initiate the connection, allocating the two channels 0 and 1. */ peer = enet_host_connect (sd->server, & address, 1, 0); enet_peer_ping_interval (peer, 10); peer->data = enet_conn_data; svc->trace_out(cm, "ENET ======== On init Assigning peer %p has data %p\n", peer, enet_conn_data); Loading @@ -416,6 +430,7 @@ retry: svc->trace_out(cm, "ENET ======== Assigning peer %p has data %p\n", event.peer, enet_connection_data); event.peer->data = enet_connection_data; ((enet_conn_data_ptr)enet_connection_data)->peer = event.peer; enet_peer_ping_interval (event.peer, 10); goto retry; } svc->trace_out(cm, "Connection to %s:%d succeeded.\n", inet_ntoa(sin_addr), address.port); Loading Loading @@ -747,6 +762,8 @@ libcmenet_LTX_non_blocking_listen(CManager cm, CMtrans_services svc, svc->fd_add_select(cm, enet_host_get_sock_fd (server), (select_list_func) enet_service_network, (void*)cm, (void*)trans); svc->add_periodic_task(cm, 1, 0, (CMPollFunc) enet_service_network_lock, (void*)trans); svc->trace_out(enet_data->cm, "CMENET Adding read_wake_fd as action on fd %d", enet_data->wake_read_fd); Loading