callback-job: Replace return_false() in constructors with dedicated function
Besides being clearer, this fixes issues with GCC 15. The latter uses C23 by default, which changes the meaning of function declarations without parameters such as bool return false(); Instead of "this function takes an unknown number of arguments", this now equals (void), that is, "this function takes no arguments". So we run into incompatible pointer type warnings all over when using such functions. They could be cast to (void*) but this seems the cleaner solution for this use case.
This commit is contained in:
@@ -585,7 +585,7 @@ cmd_connection_t *cmd_connection_create()
|
|||||||
lib->processor->queue_job(lib->processor,
|
lib->processor->queue_job(lib->processor,
|
||||||
(job_t*)callback_job_create_with_prio(
|
(job_t*)callback_job_create_with_prio(
|
||||||
(callback_job_cb_t)initiate, this, NULL,
|
(callback_job_cb_t)initiate, this, NULL,
|
||||||
(callback_job_cancel_t)return_false, JOB_PRIO_CRITICAL));
|
callback_job_cancel_thread, JOB_PRIO_CRITICAL));
|
||||||
|
|
||||||
return &this->public;
|
return &this->public;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -340,7 +340,7 @@ METHOD(android_dns_proxy_t, handle, bool,
|
|||||||
skt);
|
skt);
|
||||||
lib->scheduler->schedule_job(lib->scheduler,
|
lib->scheduler->schedule_job(lib->scheduler,
|
||||||
(job_t*)callback_job_create(handle_timeout, skt,
|
(job_t*)callback_job_create(handle_timeout, skt,
|
||||||
NULL, (callback_job_cancel_t)return_false), SOCKET_TIMEOUT);
|
NULL, callback_job_cancel_thread), SOCKET_TIMEOUT);
|
||||||
}
|
}
|
||||||
skt->last_use = time_monotonic(NULL);
|
skt->last_use = time_monotonic(NULL);
|
||||||
if (sendto(skt->fd, data.ptr, data.len, 0, dst->get_sockaddr(dst),
|
if (sendto(skt->fd, data.ptr, data.len, 0, dst->get_sockaddr(dst),
|
||||||
|
|||||||
@@ -359,7 +359,7 @@ static bool setup_tun_device(private_android_service_t *this,
|
|||||||
|
|
||||||
lib->processor->queue_job(lib->processor,
|
lib->processor->queue_job(lib->processor,
|
||||||
(job_t*)callback_job_create((callback_job_cb_t)handle_plain, this,
|
(job_t*)callback_job_create((callback_job_cb_t)handle_plain, this,
|
||||||
NULL, (callback_job_cancel_t)return_false));
|
NULL, callback_job_cancel_thread));
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@@ -600,7 +600,7 @@ METHOD(listener_t, alert, bool,
|
|||||||
lib->processor->queue_job(lib->processor,
|
lib->processor->queue_job(lib->processor,
|
||||||
(job_t*)callback_job_create_with_prio(
|
(job_t*)callback_job_create_with_prio(
|
||||||
(callback_job_cb_t)reestablish, id, free,
|
(callback_job_cb_t)reestablish, id, free,
|
||||||
(callback_job_cancel_t)return_false, JOB_PRIO_HIGH));
|
callback_job_cancel_thread, JOB_PRIO_HIGH));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ALERT_PEER_INIT_UNREACHABLE:
|
case ALERT_PEER_INIT_UNREACHABLE:
|
||||||
@@ -619,7 +619,7 @@ METHOD(listener_t, alert, bool,
|
|||||||
lib->processor->queue_job(lib->processor,
|
lib->processor->queue_job(lib->processor,
|
||||||
(job_t*)callback_job_create_with_prio(
|
(job_t*)callback_job_create_with_prio(
|
||||||
(callback_job_cb_t)terminate, id, free,
|
(callback_job_cb_t)terminate, id, free,
|
||||||
(callback_job_cancel_t)return_false, JOB_PRIO_HIGH));
|
callback_job_cancel_thread, JOB_PRIO_HIGH));
|
||||||
stay_registered = FALSE;
|
stay_registered = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -737,7 +737,7 @@ receiver_t *receiver_create()
|
|||||||
|
|
||||||
lib->processor->queue_job(lib->processor,
|
lib->processor->queue_job(lib->processor,
|
||||||
(job_t*)callback_job_create_with_prio((callback_job_cb_t)receive_packets,
|
(job_t*)callback_job_create_with_prio((callback_job_cb_t)receive_packets,
|
||||||
this, NULL, (callback_job_cancel_t)return_false, JOB_PRIO_CRITICAL));
|
this, NULL, callback_job_cancel_thread, JOB_PRIO_CRITICAL));
|
||||||
|
|
||||||
return &this->public;
|
return &this->public;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -216,7 +216,7 @@ sender_t * sender_create()
|
|||||||
|
|
||||||
lib->processor->queue_job(lib->processor,
|
lib->processor->queue_job(lib->processor,
|
||||||
(job_t*)callback_job_create_with_prio((callback_job_cb_t)send_packets,
|
(job_t*)callback_job_create_with_prio((callback_job_cb_t)send_packets,
|
||||||
this, NULL, (callback_job_cancel_t)return_false, JOB_PRIO_CRITICAL));
|
this, NULL, callback_job_cancel_thread, JOB_PRIO_CRITICAL));
|
||||||
|
|
||||||
return &this->public;
|
return &this->public;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -227,7 +227,7 @@ METHOD(kernel_listener_t, roam, bool,
|
|||||||
{
|
{
|
||||||
lib->processor->queue_job(lib->processor,
|
lib->processor->queue_job(lib->processor,
|
||||||
(job_t*)callback_job_create((callback_job_cb_t)update_bypass, this,
|
(job_t*)callback_job_create((callback_job_cb_t)update_bypass, this,
|
||||||
NULL, (callback_job_cancel_t)return_false));
|
NULL, callback_job_cancel_thread));
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -269,7 +269,7 @@ METHOD(bypass_lan_listener_t, reload_interfaces, void,
|
|||||||
this->mutex->unlock(this->mutex);
|
this->mutex->unlock(this->mutex);
|
||||||
lib->processor->queue_job(lib->processor,
|
lib->processor->queue_job(lib->processor,
|
||||||
(job_t*)callback_job_create((callback_job_cb_t)update_bypass, this,
|
(job_t*)callback_job_create((callback_job_cb_t)update_bypass, this,
|
||||||
NULL, (callback_job_cancel_t)return_false));
|
NULL, callback_job_cancel_thread));
|
||||||
}
|
}
|
||||||
|
|
||||||
METHOD(bypass_lan_listener_t, destroy, void,
|
METHOD(bypass_lan_listener_t, destroy, void,
|
||||||
|
|||||||
@@ -706,7 +706,7 @@ static void schedule_interim(private_eap_radius_accounting_t *this,
|
|||||||
(job_t*)callback_job_create_with_prio(
|
(job_t*)callback_job_create_with_prio(
|
||||||
(callback_job_cb_t)send_interim,
|
(callback_job_cb_t)send_interim,
|
||||||
data, (void*)destroy_interim_data,
|
data, (void*)destroy_interim_data,
|
||||||
(callback_job_cancel_t)return_false, JOB_PRIO_CRITICAL), tv);
|
callback_job_cancel_thread, JOB_PRIO_CRITICAL), tv);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -445,7 +445,7 @@ void eap_radius_handle_timeout(ike_sa_id_t *id)
|
|||||||
lib->processor->queue_job(lib->processor,
|
lib->processor->queue_job(lib->processor,
|
||||||
(job_t*)callback_job_create_with_prio(
|
(job_t*)callback_job_create_with_prio(
|
||||||
(callback_job_cb_t)delete_all_async, NULL, NULL,
|
(callback_job_cb_t)delete_all_async, NULL, NULL,
|
||||||
(callback_job_cancel_t)return_false, JOB_PRIO_CRITICAL));
|
callback_job_cancel_thread, JOB_PRIO_CRITICAL));
|
||||||
}
|
}
|
||||||
else if (id)
|
else if (id)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -199,6 +199,6 @@ ha_ctl_t *ha_ctl_create(ha_segments_t *segments, ha_cache_t *cache)
|
|||||||
|
|
||||||
lib->processor->queue_job(lib->processor,
|
lib->processor->queue_job(lib->processor,
|
||||||
(job_t*)callback_job_create_with_prio((callback_job_cb_t)dispatch_fifo,
|
(job_t*)callback_job_create_with_prio((callback_job_cb_t)dispatch_fifo,
|
||||||
this, NULL, (callback_job_cancel_t)return_false, JOB_PRIO_CRITICAL));
|
this, NULL, callback_job_cancel_thread, JOB_PRIO_CRITICAL));
|
||||||
return &this->public;
|
return &this->public;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1184,7 +1184,7 @@ ha_dispatcher_t *ha_dispatcher_create(ha_socket_t *socket,
|
|||||||
);
|
);
|
||||||
lib->processor->queue_job(lib->processor,
|
lib->processor->queue_job(lib->processor,
|
||||||
(job_t*)callback_job_create_with_prio((callback_job_cb_t)dispatch, this,
|
(job_t*)callback_job_create_with_prio((callback_job_cb_t)dispatch, this,
|
||||||
NULL, (callback_job_cancel_t)return_false, JOB_PRIO_CRITICAL));
|
NULL, callback_job_cancel_thread, JOB_PRIO_CRITICAL));
|
||||||
|
|
||||||
return &this->public;
|
return &this->public;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -316,7 +316,7 @@ static void start_watchdog(private_ha_segments_t *this)
|
|||||||
this->heartbeat_active = TRUE;
|
this->heartbeat_active = TRUE;
|
||||||
lib->processor->queue_job(lib->processor,
|
lib->processor->queue_job(lib->processor,
|
||||||
(job_t*)callback_job_create_with_prio((callback_job_cb_t)watchdog, this,
|
(job_t*)callback_job_create_with_prio((callback_job_cb_t)watchdog, this,
|
||||||
NULL, (callback_job_cancel_t)return_false, JOB_PRIO_CRITICAL));
|
NULL, callback_job_cancel_thread, JOB_PRIO_CRITICAL));
|
||||||
}
|
}
|
||||||
|
|
||||||
METHOD(ha_segments_t, handle_status, void,
|
METHOD(ha_segments_t, handle_status, void,
|
||||||
@@ -404,7 +404,7 @@ static void start_heartbeat(private_ha_segments_t *this)
|
|||||||
{
|
{
|
||||||
lib->processor->queue_job(lib->processor,
|
lib->processor->queue_job(lib->processor,
|
||||||
(job_t*)callback_job_create_with_prio((callback_job_cb_t)send_status,
|
(job_t*)callback_job_create_with_prio((callback_job_cb_t)send_status,
|
||||||
this, NULL, (callback_job_cancel_t)return_false, JOB_PRIO_CRITICAL));
|
this, NULL, callback_job_cancel_thread, JOB_PRIO_CRITICAL));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -451,7 +451,7 @@ static void start_autobalance(private_ha_segments_t *this)
|
|||||||
DBG1(DBG_CFG, "scheduling HA autobalance every %ds", this->autobalance);
|
DBG1(DBG_CFG, "scheduling HA autobalance every %ds", this->autobalance);
|
||||||
lib->scheduler->schedule_job(lib->scheduler,
|
lib->scheduler->schedule_job(lib->scheduler,
|
||||||
(job_t*)callback_job_create_with_prio((callback_job_cb_t)autobalance,
|
(job_t*)callback_job_create_with_prio((callback_job_cb_t)autobalance,
|
||||||
this, NULL, (callback_job_cancel_t)return_false, JOB_PRIO_CRITICAL),
|
this, NULL, callback_job_cancel_thread, JOB_PRIO_CRITICAL),
|
||||||
this->autobalance);
|
this->autobalance);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -337,7 +337,7 @@ kernel_libipsec_esp_handler_t *kernel_libipsec_esp_handler_create()
|
|||||||
}
|
}
|
||||||
lib->processor->queue_job(lib->processor,
|
lib->processor->queue_job(lib->processor,
|
||||||
(job_t*)callback_job_create(send_esp, this, NULL,
|
(job_t*)callback_job_create(send_esp, this, NULL,
|
||||||
(callback_job_cancel_t)return_false));
|
callback_job_cancel_thread));
|
||||||
return &this->public;
|
return &this->public;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -364,7 +364,7 @@ kernel_libipsec_router_t *kernel_libipsec_router_create()
|
|||||||
charon->receiver->add_esp_cb(charon->receiver, receiver_esp_cb, NULL);
|
charon->receiver->add_esp_cb(charon->receiver, receiver_esp_cb, NULL);
|
||||||
lib->processor->queue_job(lib->processor,
|
lib->processor->queue_job(lib->processor,
|
||||||
(job_t*)callback_job_create((callback_job_cb_t)handle_plain, this,
|
(job_t*)callback_job_create((callback_job_cb_t)handle_plain, this,
|
||||||
NULL, (callback_job_cancel_t)return_false));
|
NULL, callback_job_cancel_thread));
|
||||||
|
|
||||||
router = &this->public;
|
router = &this->public;
|
||||||
return &this->public;
|
return &this->public;
|
||||||
|
|||||||
@@ -710,7 +710,7 @@ static job_requeue_t dispatch(private_smp_t *this)
|
|||||||
fdp = malloc_thing(int);
|
fdp = malloc_thing(int);
|
||||||
*fdp = fd;
|
*fdp = fd;
|
||||||
job = callback_job_create((callback_job_cb_t)process, fdp, free,
|
job = callback_job_create((callback_job_cb_t)process, fdp, free,
|
||||||
(callback_job_cancel_t)return_false);
|
callback_job_cancel_thread);
|
||||||
lib->processor->queue_job(lib->processor, (job_t*)job);
|
lib->processor->queue_job(lib->processor, (job_t*)job);
|
||||||
|
|
||||||
return JOB_REQUEUE_DIRECT;
|
return JOB_REQUEUE_DIRECT;
|
||||||
@@ -800,7 +800,7 @@ plugin_t *smp_plugin_create()
|
|||||||
|
|
||||||
lib->processor->queue_job(lib->processor,
|
lib->processor->queue_job(lib->processor,
|
||||||
(job_t*)callback_job_create_with_prio((callback_job_cb_t)dispatch, this,
|
(job_t*)callback_job_create_with_prio((callback_job_cb_t)dispatch, this,
|
||||||
NULL, (callback_job_cancel_t)return_false, JOB_PRIO_CRITICAL));
|
NULL, callback_job_cancel_thread, JOB_PRIO_CRITICAL));
|
||||||
|
|
||||||
return &this->public.plugin;
|
return &this->public.plugin;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -210,7 +210,7 @@ METHOD(tnc_pdp_connections_t, add, void,
|
|||||||
/* schedule timeout checking */
|
/* schedule timeout checking */
|
||||||
lib->scheduler->schedule_job_ms(lib->scheduler,
|
lib->scheduler->schedule_job_ms(lib->scheduler,
|
||||||
(job_t*)callback_job_create((callback_job_cb_t)check_timeouts,
|
(job_t*)callback_job_create((callback_job_cb_t)check_timeouts,
|
||||||
this, NULL, (callback_job_cancel_t)return_false),
|
this, NULL, callback_job_cancel_thread),
|
||||||
this->timeout * 1000);
|
this->timeout * 1000);
|
||||||
|
|
||||||
dbg_nas_user(nas_id, user_name, FALSE, "created");
|
dbg_nas_user(nas_id, user_name, FALSE, "created");
|
||||||
|
|||||||
@@ -296,7 +296,7 @@ uci_control_t *uci_control_create()
|
|||||||
{
|
{
|
||||||
lib->processor->queue_job(lib->processor,
|
lib->processor->queue_job(lib->processor,
|
||||||
(job_t*)callback_job_create_with_prio((callback_job_cb_t)receive,
|
(job_t*)callback_job_create_with_prio((callback_job_cb_t)receive,
|
||||||
this, NULL, (callback_job_cancel_t)return_false,
|
this, NULL, callback_job_cancel_thread,
|
||||||
JOB_PRIO_CRITICAL));
|
JOB_PRIO_CRITICAL));
|
||||||
}
|
}
|
||||||
return &this->public;
|
return &this->public;
|
||||||
|
|||||||
@@ -230,7 +230,7 @@ ipsec_event_relay_t *ipsec_event_relay_create()
|
|||||||
|
|
||||||
lib->processor->queue_job(lib->processor,
|
lib->processor->queue_job(lib->processor,
|
||||||
(job_t*)callback_job_create((callback_job_cb_t)handle_events, this,
|
(job_t*)callback_job_create((callback_job_cb_t)handle_events, this,
|
||||||
NULL, (callback_job_cancel_t)return_false));
|
NULL, callback_job_cancel_thread));
|
||||||
|
|
||||||
return &this->public;
|
return &this->public;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -336,9 +336,9 @@ ipsec_processor_t *ipsec_processor_create()
|
|||||||
|
|
||||||
lib->processor->queue_job(lib->processor,
|
lib->processor->queue_job(lib->processor,
|
||||||
(job_t*)callback_job_create((callback_job_cb_t)process_inbound, this,
|
(job_t*)callback_job_create((callback_job_cb_t)process_inbound, this,
|
||||||
NULL, (callback_job_cancel_t)return_false));
|
NULL, callback_job_cancel_thread));
|
||||||
lib->processor->queue_job(lib->processor,
|
lib->processor->queue_job(lib->processor,
|
||||||
(job_t*)callback_job_create((callback_job_cb_t)process_outbound, this,
|
(job_t*)callback_job_create((callback_job_cb_t)process_outbound, this,
|
||||||
NULL, (callback_job_cancel_t)return_false));
|
NULL, callback_job_cancel_thread));
|
||||||
return &this->public;
|
return &this->public;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ METHOD(pt_tls_dispatcher_t, dispatch, void,
|
|||||||
lib->processor->queue_job(lib->processor,
|
lib->processor->queue_job(lib->processor,
|
||||||
(job_t*)callback_job_create_with_prio((callback_job_cb_t)handle,
|
(job_t*)callback_job_create_with_prio((callback_job_cb_t)handle,
|
||||||
connection, (void*)cleanup,
|
connection, (void*)cleanup,
|
||||||
(callback_job_cancel_t)return_false,
|
callback_job_cancel_thread,
|
||||||
JOB_PRIO_CRITICAL));
|
JOB_PRIO_CRITICAL));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -221,7 +221,7 @@ static bool watch(private_stream_service_t *this, int fd, watcher_event_t event)
|
|||||||
|
|
||||||
lib->processor->queue_job(lib->processor,
|
lib->processor->queue_job(lib->processor,
|
||||||
(job_t*)callback_job_create_with_prio((void*)accept_async, data,
|
(job_t*)callback_job_create_with_prio((void*)accept_async, data,
|
||||||
(void*)destroy_async_data, (callback_job_cancel_t)return_false,
|
(void*)destroy_async_data, callback_job_cancel_thread,
|
||||||
this->prio));
|
this->prio));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2009-2012 Tobias Brunner
|
* Copyright (C) 2009-2025 Tobias Brunner
|
||||||
* Copyright (C) 2007-2011 Martin Willi
|
* Copyright (C) 2007-2011 Martin Willi
|
||||||
*
|
*
|
||||||
* Copyright (C) secunet Security Networks AG
|
* Copyright (C) secunet Security Networks AG
|
||||||
@@ -131,3 +131,11 @@ callback_job_t *callback_job_create(callback_job_cb_t cb, void *data,
|
|||||||
return callback_job_create_with_prio(cb, data, cleanup, cancel,
|
return callback_job_create_with_prio(cb, data, cleanup, cancel,
|
||||||
JOB_PRIO_MEDIUM);
|
JOB_PRIO_MEDIUM);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Described in header
|
||||||
|
*/
|
||||||
|
bool callback_job_cancel_thread(void *data)
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2012 Tobias Brunner
|
* Copyright (C) 2012-2025 Tobias Brunner
|
||||||
* Copyright (C) 2007-2011 Martin Willi
|
* Copyright (C) 2007-2011 Martin Willi
|
||||||
*
|
*
|
||||||
* Copyright (C) secunet Security Networks AG
|
* Copyright (C) secunet Security Networks AG
|
||||||
@@ -62,6 +62,15 @@ typedef void (*callback_job_cleanup_t)(void *data);
|
|||||||
*/
|
*/
|
||||||
typedef bool (*callback_job_cancel_t)(void *data);
|
typedef bool (*callback_job_cancel_t)(void *data);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default implementation of callback_job_cancel_t that simply returns FALSE
|
||||||
|
* to force cancellation of the thread by the processor.
|
||||||
|
*
|
||||||
|
* @param data ignored argument
|
||||||
|
* @return always returns FALSE
|
||||||
|
*/
|
||||||
|
bool callback_job_cancel_thread(void *data);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class representing an callback Job.
|
* Class representing an callback Job.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -329,7 +329,8 @@ scheduler_t * scheduler_create()
|
|||||||
this->heap = (event_t**)calloc(this->heap_size + 1, sizeof(event_t*));
|
this->heap = (event_t**)calloc(this->heap_size + 1, sizeof(event_t*));
|
||||||
|
|
||||||
job = callback_job_create_with_prio((callback_job_cb_t)schedule, this,
|
job = callback_job_create_with_prio((callback_job_cb_t)schedule, this,
|
||||||
NULL, return_false, JOB_PRIO_CRITICAL);
|
NULL, callback_job_cancel_thread,
|
||||||
|
JOB_PRIO_CRITICAL);
|
||||||
lib->processor->queue_job(lib->processor, (job_t*)job);
|
lib->processor->queue_job(lib->processor, (job_t*)job);
|
||||||
|
|
||||||
return &this->public;
|
return &this->public;
|
||||||
|
|||||||
@@ -291,7 +291,7 @@ static void notify(private_watcher_t *this, entry_t *entry,
|
|||||||
|
|
||||||
this->jobs->insert_last(this->jobs,
|
this->jobs->insert_last(this->jobs,
|
||||||
callback_job_create_with_prio((void*)notify_async, data,
|
callback_job_create_with_prio((void*)notify_async, data,
|
||||||
(void*)notify_end, (callback_job_cancel_t)return_false,
|
(void*)notify_end, callback_job_cancel_thread,
|
||||||
JOB_PRIO_CRITICAL));
|
JOB_PRIO_CRITICAL));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -559,7 +559,7 @@ METHOD(watcher_t, add, void,
|
|||||||
|
|
||||||
lib->processor->queue_job(lib->processor,
|
lib->processor->queue_job(lib->processor,
|
||||||
(job_t*)callback_job_create_with_prio((void*)watch, this,
|
(job_t*)callback_job_create_with_prio((void*)watch, this,
|
||||||
NULL, (callback_job_cancel_t)return_false, JOB_PRIO_CRITICAL));
|
NULL, callback_job_cancel_thread, JOB_PRIO_CRITICAL));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -587,7 +587,7 @@ static void start_echo_server(echo_server_config_t *config)
|
|||||||
|
|
||||||
lib->processor->queue_job(lib->processor, (job_t*)
|
lib->processor->queue_job(lib->processor, (job_t*)
|
||||||
callback_job_create((void*)serve_echo, config, NULL,
|
callback_job_create((void*)serve_echo, config, NULL,
|
||||||
(callback_job_cancel_t)return_false));
|
callback_job_cancel_thread));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user