|  | @@ -208,7 +208,7 @@ clock_gettime(int clk_id, struct timespec *t)
 | 
	
		
			
				|  |  |  mg_static_assert(MAX_WORKER_THREADS >= 1,
 | 
	
		
			
				|  |  |                   "worker threads must be a positive number");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -mg_static_assert(sizeof(size_t) == 4 || sizeof(size_t) == 8, 
 | 
	
		
			
				|  |  | +mg_static_assert(sizeof(size_t) == 4 || sizeof(size_t) == 8,
 | 
	
		
			
				|  |  |                   "size_t data type size check");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #if defined(_WIN32)                                                            \
 | 
	
	
		
			
				|  | @@ -1428,7 +1428,7 @@ struct mg_context {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #ifdef ALTERNATIVE_QUEUE
 | 
	
		
			
				|  |  |  	struct socket *client_socks;
 | 
	
		
			
				|  |  | -	int *client_wait_events;
 | 
	
		
			
				|  |  | +	void **client_wait_events;
 | 
	
		
			
				|  |  |  #else
 | 
	
		
			
				|  |  |  	struct socket queue[MGSQLEN]; /* Accepted sockets */
 | 
	
		
			
				|  |  |  	volatile int sq_head;         /* Head of the socket queue */
 | 
	
	
		
			
				|  | @@ -1595,7 +1595,7 @@ typedef struct tagTHREADNAME_INFO {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #if defined(ALTERNATIVE_QUEUE) && 0 /* XXX:remove && 0 */
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static int
 | 
	
		
			
				|  |  | +static void *
 | 
	
		
			
				|  |  |  event_create(void)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	int ret = eventfd(0, EFD_CLOEXEC);
 | 
	
	
		
			
				|  | @@ -1604,15 +1604,15 @@ event_create(void)
 | 
	
		
			
				|  |  |  		/* However, Linux does not return 0 on success either. */
 | 
	
		
			
				|  |  |  		return 0;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | -	return ret;
 | 
	
		
			
				|  |  | +	return (void *)ret;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static int
 | 
	
		
			
				|  |  | -event_wait(int eventhdl)
 | 
	
		
			
				|  |  | +event_wait(void *eventhdl)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	uint64_t u;
 | 
	
		
			
				|  |  | -	int s = (int)read(eventhdl, &u, sizeof(u));
 | 
	
		
			
				|  |  | +	int s = (int)read((int)eventhdl, &u, sizeof(u));
 | 
	
		
			
				|  |  |  	if (s != sizeof(uint64_t)) {
 | 
	
		
			
				|  |  |  		/* error */
 | 
	
		
			
				|  |  |  		return 0;
 | 
	
	
		
			
				|  | @@ -1623,10 +1623,10 @@ event_wait(int eventhdl)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static int
 | 
	
		
			
				|  |  | -event_signal(int eventhdl)
 | 
	
		
			
				|  |  | +event_signal(void *eventhdl)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	uint64_t u = 1;
 | 
	
		
			
				|  |  | -	int s = (int)write(eventhdl, &u, sizeof(u));
 | 
	
		
			
				|  |  | +	int s = (int)write((int)eventhdl, &u, sizeof(u));
 | 
	
		
			
				|  |  |  	if (s != sizeof(uint64_t)) {
 | 
	
		
			
				|  |  |  		/* error */
 | 
	
		
			
				|  |  |  		return 0;
 | 
	
	
		
			
				|  | @@ -1636,26 +1636,25 @@ event_signal(int eventhdl)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static void
 | 
	
		
			
				|  |  | -event_destroy(int eventhdl)
 | 
	
		
			
				|  |  | +event_destroy(void *eventhdl)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	close(eventhdl);
 | 
	
		
			
				|  |  | +	close((int)eventhdl);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -#if /* XXX:uncomment !defined(__linux__) &&*/ !defined(_WIN32) && defined(ALTERNATIVE_QUEUE)
 | 
	
		
			
				|  |  | +#if /* XXX:uncomment !defined(__linux__) &&*/ !defined(_WIN32)                 \
 | 
	
		
			
				|  |  | +    && defined(ALTERNATIVE_QUEUE)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  struct posix_event {
 | 
	
		
			
				|  |  |  	pthread_mutex_t mutex;
 | 
	
		
			
				|  |  |  	pthread_cond_t cond;
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -mg_static_assert(sizeof(struct posix_event *) == sizeof(int), "data type size check");
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static int
 | 
	
		
			
				|  |  | +static void *
 | 
	
		
			
				|  |  |  event_create(void)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	struct posix_event *ret = mg_malloc(sizeof(struct posix_event));
 | 
	
	
		
			
				|  | @@ -1663,36 +1662,36 @@ event_create(void)
 | 
	
		
			
				|  |  |  		/* out of memory */
 | 
	
		
			
				|  |  |  		return 0;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | -	if (0!=pthread_mutex_init(&(ret->mutex), NULL)) {
 | 
	
		
			
				|  |  | +	if (0 != pthread_mutex_init(&(ret->mutex), NULL)) {
 | 
	
		
			
				|  |  |  		/* pthread mutex not available */
 | 
	
		
			
				|  |  |  		mg_free(ret);
 | 
	
		
			
				|  |  |  		return 0;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | -	if (0!=pthread_cond_init(&(ret->cond), NULL)) {
 | 
	
		
			
				|  |  | +	if (0 != pthread_cond_init(&(ret->cond), NULL)) {
 | 
	
		
			
				|  |  |  		/* pthread cond not available */
 | 
	
		
			
				|  |  |  		pthread_mutex_destroy(&(ret->mutex));
 | 
	
		
			
				|  |  |  		mg_free(ret);
 | 
	
		
			
				|  |  |  		return 0;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | -	return (int)ret;
 | 
	
		
			
				|  |  | +	return (void *)ret;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static int
 | 
	
		
			
				|  |  | -event_wait(int eventhdl)
 | 
	
		
			
				|  |  | +event_wait(void *eventhdl)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	struct posix_event *ev = (struct posix_event*)eventhdl;
 | 
	
		
			
				|  |  | +	struct posix_event *ev = (struct posix_event *)eventhdl;
 | 
	
		
			
				|  |  |  	pthread_mutex_lock(&(ev->mutex));
 | 
	
		
			
				|  |  | -	pthread_cond_wait(&(ev->cond));
 | 
	
		
			
				|  |  | +	pthread_cond_wait(&(ev->cond), &(ev->mutex));
 | 
	
		
			
				|  |  |  	pthread_mutex_unlock(&(ev->mutex));
 | 
	
		
			
				|  |  |  	return 1;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static int
 | 
	
		
			
				|  |  | -event_signal(int eventhdl)
 | 
	
		
			
				|  |  | +event_signal(void *eventhdl)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	struct posix_event *ev = (struct posix_event*)eventhdl;
 | 
	
		
			
				|  |  | +	struct posix_event *ev = (struct posix_event *)eventhdl;
 | 
	
		
			
				|  |  |  	pthread_mutex_lock(&(ev->mutex));
 | 
	
		
			
				|  |  |  	pthread_cond_signal(&(ev->cond));
 | 
	
		
			
				|  |  |  	pthread_mutex_unlock(&(ev->mutex));
 | 
	
	
		
			
				|  | @@ -1701,9 +1700,9 @@ event_signal(int eventhdl)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static void
 | 
	
		
			
				|  |  | -event_destroy(int eventhdl)
 | 
	
		
			
				|  |  | +event_destroy(void *eventhdl)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	struct posix_event *ev = (struct posix_event*)eventhdl;
 | 
	
		
			
				|  |  | +	struct posix_event *ev = (struct posix_event *)eventhdl;
 | 
	
		
			
				|  |  |  	pthread_cond_destroy(&(ev->cond));
 | 
	
		
			
				|  |  |  	pthread_mutex_destroy(&(ev->mutex));
 | 
	
		
			
				|  |  |  	mg_free(ev);
 | 
	
	
		
			
				|  | @@ -3132,15 +3131,15 @@ pthread_cond_destroy(pthread_cond_t *cv)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #ifdef ALTERNATIVE_QUEUE
 | 
	
		
			
				|  |  | -static int
 | 
	
		
			
				|  |  | +static void *
 | 
	
		
			
				|  |  |  event_create(void)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	return (int)CreateEvent(NULL, FALSE, FALSE, NULL);
 | 
	
		
			
				|  |  | +	return (void *)CreateEvent(NULL, FALSE, FALSE, NULL);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static int
 | 
	
		
			
				|  |  | -event_wait(int eventhdl)
 | 
	
		
			
				|  |  | +event_wait(void *eventhdl)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	int res = WaitForSingleObject((HANDLE)eventhdl, INFINITE);
 | 
	
		
			
				|  |  |  	return (res == WAIT_OBJECT_0);
 | 
	
	
		
			
				|  | @@ -3148,14 +3147,14 @@ event_wait(int eventhdl)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static int
 | 
	
		
			
				|  |  | -event_signal(int eventhdl)
 | 
	
		
			
				|  |  | +event_signal(void *eventhdl)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	return (int)SetEvent((HANDLE)eventhdl);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static void
 | 
	
		
			
				|  |  | -event_destroy(int eventhdl)
 | 
	
		
			
				|  |  | +event_destroy(void *eventhdl)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	CloseHandle((HANDLE)eventhdl);
 | 
	
		
			
				|  |  |  }
 |