mirror of
https://github.com/libevent/libevent.git
synced 2025-01-31 09:12:55 +08:00
Declare signal handler function as "__cdecl" on Windows.
I swear, they must have half a dozen different calling conventions. (goes to check) Holy crud. They actually do. There's __cdecl, __stdcall, __fastcall, "thiscall", "naked" and the obsolete "__pascal", "__fortran", and "__syscall". And don't forget WINAPI and __far. Anyways, this should fix 3044488 if I got it right.
This commit is contained in:
parent
acc4aca49e
commit
f0056d041b
12
signal.c
12
signal.c
@ -62,6 +62,12 @@
|
||||
#include "log-internal.h"
|
||||
#include "evmap-internal.h"
|
||||
|
||||
#ifndef WIN32
|
||||
/* Windows wants us to call our signal handlers as __cdecl. Nobody else
|
||||
* expects you to do anything crazy like this. */
|
||||
#define __cdecl
|
||||
#endif
|
||||
|
||||
static int evsig_add(struct event_base *, int, short, short, void *);
|
||||
static int evsig_del(struct event_base *, int, short, short, void *);
|
||||
|
||||
@ -77,7 +83,7 @@ static const struct eventop evsigops = {
|
||||
|
||||
struct event_base *evsig_base = NULL;
|
||||
|
||||
static void evsig_handler(int sig);
|
||||
static void __cdecl evsig_handler(int sig);
|
||||
|
||||
/* Callback for when the signal handler write a byte to our signaling socket */
|
||||
static void
|
||||
@ -141,7 +147,7 @@ evsig_init(struct event_base *base)
|
||||
* we can restore the original handler when we clear the current one. */
|
||||
int
|
||||
_evsig_set_handler(struct event_base *base,
|
||||
int evsignal, void (*handler)(int))
|
||||
int evsignal, void (*__cdecl handler)(int))
|
||||
{
|
||||
#ifdef _EVENT_HAVE_SIGACTION
|
||||
struct sigaction sa;
|
||||
@ -270,7 +276,7 @@ evsig_del(struct event_base *base, int evsignal, short old, short events, void *
|
||||
return (_evsig_restore_handler(base, evsignal));
|
||||
}
|
||||
|
||||
static void
|
||||
static void __cdecl
|
||||
evsig_handler(int sig)
|
||||
{
|
||||
int save_errno = errno;
|
||||
|
Loading…
x
Reference in New Issue
Block a user