diff --git a/dap-sdk/net/client/dap_client_pvt.c b/dap-sdk/net/client/dap_client_pvt.c index 8486ad41fd2828ab2438e5fe55ff7e49439c1005..eea06da02990a4486f604601bf423fed74ead038 100644 --- a/dap-sdk/net/client/dap_client_pvt.c +++ b/dap-sdk/net/client/dap_client_pvt.c @@ -479,6 +479,8 @@ static void s_stage_status_after(dap_client_pvt_t * a_client_pvt) a_client_pvt->stream_es = dap_events_socket_wrap_no_add(a_client_pvt->events, a_client_pvt->stream_socket, &l_s_callbacks); dap_worker_t * l_worker = dap_events_worker_get_auto(); + assert(l_worker); + assert(l_worker->_inheritor); a_client_pvt->stream_worker = DAP_STREAM_WORKER(l_worker); // add to dap_worker dap_events_socket_assign_on_worker_mt(a_client_pvt->stream_es, l_worker); @@ -490,7 +492,7 @@ static void s_stage_status_after(dap_client_pvt_t * a_client_pvt) // new added, whether it is necessary? a_client_pvt->stream->session->key = a_client_pvt->stream_key; - a_client_pvt->stream_worker = (dap_stream_worker_t*) l_worker->_inheritor; + a_client_pvt->stream->stream_worker = a_client_pvt->stream_worker; // connect @@ -511,8 +513,8 @@ static void s_stage_status_after(dap_client_pvt_t * a_client_pvt) sizeof(struct sockaddr_in))) != -1) { a_client_pvt->stream_es->flags &= ~DAP_SOCK_SIGNAL_CLOSE; //s_set_sock_nonblock(a_client_pvt->stream_socket, false); - log_it(L_INFO, "Remote address connected (%s:%u) with sock_id %d", a_client_pvt->uplink_addr, - a_client_pvt->uplink_port, a_client_pvt->stream_socket); + log_it(L_INFO, "Remote address connected (%s:%u) with sock_id %d (assign on worker #%u)", a_client_pvt->uplink_addr, + a_client_pvt->uplink_port, a_client_pvt->stream_socket, l_worker->id); a_client_pvt->stage_status = STAGE_STATUS_DONE; } else { @@ -549,7 +551,7 @@ static void s_stage_status_after(dap_client_pvt_t * a_client_pvt) const char *l_add_str = ""; - dap_events_socket_write_f_mt(a_client_pvt->stream_es->worker, a_client_pvt->stream_es, "GET /%s HTTP/1.1\r\n" + dap_events_socket_write_f_mt(a_client_pvt->stream_worker->worker, a_client_pvt->stream_es, "GET /%s HTTP/1.1\r\n" "Host: %s:%d%s\r\n" "\r\n", l_full_path, a_client_pvt->uplink_addr, a_client_pvt->uplink_port, l_add_str); diff --git a/dap-sdk/net/core/dap_worker.c b/dap-sdk/net/core/dap_worker.c index ff88a74640a5f3550458ea6106ff6cae4ea5ee16..79371f667e94068fb0d7f051abc059c949298a22 100644 --- a/dap-sdk/net/core/dap_worker.c +++ b/dap-sdk/net/core/dap_worker.c @@ -78,7 +78,7 @@ void *dap_worker_thread(void *arg) dap_cpu_assign_thread_on(l_worker->id); struct sched_param l_shed_params; l_shed_params.sched_priority = 0; - pthread_setschedparam(pthread_self(),SCHED_FIFO ,&l_shed_params); + pthread_setschedparam(pthread_self(),SCHED_OTHER ,&l_shed_params); l_worker->queue_es_new = dap_events_socket_create_type_queue_ptr_unsafe( l_worker, s_queue_new_es_callback); l_worker->queue_es_delete = dap_events_socket_create_type_queue_ptr_unsafe( l_worker, s_queue_delete_es_callback);