mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 06:13:31 +01:00
r8725@Kushana: nickm | 2006-09-06 04:39:29 -0400
spawn_func fixes: have cpuworker_main and dnsworker_main confirm to the right interfaces [casting func to void* is icky]. Also, make pthread_create() build without warnings. svn:r8327
This commit is contained in:
parent
000b7b287c
commit
365ccf0742
@ -936,14 +936,14 @@ get_uname(void)
|
||||
* invoke them in a way pthreads would expect.
|
||||
*/
|
||||
typedef struct tor_pthread_data_t {
|
||||
int (*func)(void *);
|
||||
void (*func)(void *);
|
||||
void *data;
|
||||
} tor_pthread_data_t;
|
||||
static void *
|
||||
tor_pthread_helper_fn(void *_data)
|
||||
{
|
||||
tor_pthread_data_t *data = _data;
|
||||
int (*func)(void*);
|
||||
void (*func)(void*);
|
||||
void *arg;
|
||||
func = data->func;
|
||||
arg = data->data;
|
||||
|
@ -36,7 +36,7 @@ static int num_cpuworkers_busy=0;
|
||||
* the last time we got a key rotation event. */
|
||||
static time_t last_rotation_time=0;
|
||||
|
||||
static int cpuworker_main(void *data);
|
||||
static void cpuworker_main(void *data);
|
||||
static int spawn_cpuworker(void);
|
||||
static void spawn_enough_cpuworkers(void);
|
||||
static void process_pending_task(connection_t *cpuworker);
|
||||
@ -222,7 +222,7 @@ done_processing:
|
||||
* (Note: this _should_ be by addr/port, since we're concerned with specific
|
||||
* connections, not with routers (where we'd use identity).)
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
cpuworker_main(void *data)
|
||||
{
|
||||
char question[ONIONSKIN_CHALLENGE_LEN];
|
||||
@ -308,7 +308,6 @@ cpuworker_main(void *data)
|
||||
tor_close_socket(fd);
|
||||
crypto_thread_cleanup();
|
||||
spawn_exit();
|
||||
return 0; /* windows wants this function to return an int */
|
||||
}
|
||||
|
||||
/** Launch a new cpuworker. Return 0 if we're happy, -1 if we failed.
|
||||
@ -333,7 +332,7 @@ spawn_cpuworker(void)
|
||||
tor_assert(fdarray[1] >= 0);
|
||||
|
||||
fd = fdarray[0];
|
||||
spawn_func((void*) cpuworker_main, (void*)fdarray);
|
||||
spawn_func(cpuworker_main, (void*)fdarray);
|
||||
log_debug(LD_OR,"just spawned a cpu worker.");
|
||||
#ifndef TOR_IS_MULTITHREADED
|
||||
tor_close_socket(fdarray[1]); /* don't need the worker's side of the pipe */
|
||||
|
@ -112,7 +112,7 @@ static void send_resolved_cell(edge_connection_t *conn, uint8_t answer_type);
|
||||
static int launch_resolve(edge_connection_t *exitconn);
|
||||
#ifndef USE_EVENTDNS
|
||||
static void dnsworkers_rotate(void);
|
||||
static int dnsworker_main(void *data);
|
||||
static void dnsworker_main(void *data);
|
||||
static int spawn_dnsworker(void);
|
||||
static int spawn_enough_dnsworkers(void);
|
||||
#else
|
||||
@ -991,7 +991,7 @@ dnsworkers_rotate(void)
|
||||
* The dnsworker runs indefinitely, until its connection is closed or an error
|
||||
* occurs.
|
||||
*/
|
||||
static int
|
||||
static void
|
||||
dnsworker_main(void *data)
|
||||
{
|
||||
char address[MAX_ADDRESSLEN+1]; /* Plus a byte for a final '.' */
|
||||
@ -1079,7 +1079,6 @@ dnsworker_main(void *data)
|
||||
spawn_exit();
|
||||
}
|
||||
}
|
||||
return 0; /* windows wants this function to return an int */
|
||||
}
|
||||
|
||||
/** Launch a new DNS worker; return 0 on success, -1 on failure.
|
||||
|
Loading…
Reference in New Issue
Block a user