Commit 9881ad084225feec6b6921ff823e43cbc01ad0d6
1 parent
aefafc4e
Exists in
master
and in
1 other branch
Updating timer enging to match lib3270 update.
Showing
1 changed file
with
5 additions
and
4 deletions
Show diff stats
src/terminal/iocallback.c
@@ -37,7 +37,7 @@ static void * static_AddSource(H3270 *session, int fd, LIB3270_IO_FLAG flag, | @@ -37,7 +37,7 @@ static void * static_AddSource(H3270 *session, int fd, LIB3270_IO_FLAG flag, | ||
37 | static void static_RemoveSource(H3270 *session, void *id); | 37 | static void static_RemoveSource(H3270 *session, void *id); |
38 | static void static_SetSourceState(H3270 *session, void *id, int enabled); | 38 | static void static_SetSourceState(H3270 *session, void *id, int enabled); |
39 | 39 | ||
40 | -static void * static_AddTimer(H3270 *session, unsigned long interval_ms, int (*proc)(H3270 *session)); | 40 | +static void * static_AddTimer(H3270 *session, unsigned long interval_ms, int (*proc)(H3270 *session, void *userdata), void *userdata); |
41 | static void static_RemoveTimer(H3270 *session, void * timer); | 41 | static void static_RemoveTimer(H3270 *session, void * timer); |
42 | static int static_Sleep(H3270 *hSession, int seconds); | 42 | static int static_Sleep(H3270 *hSession, int seconds); |
43 | static int static_RunPendingEvents(H3270 *hSession, int wait); | 43 | static int static_RunPendingEvents(H3270 *hSession, int wait); |
@@ -48,7 +48,7 @@ static int static_RunPendingEvents(H3270 *hSession, int wait); | @@ -48,7 +48,7 @@ static int static_RunPendingEvents(H3270 *hSession, int wait); | ||
48 | { | 48 | { |
49 | unsigned char remove; | 49 | unsigned char remove; |
50 | void * userdata; | 50 | void * userdata; |
51 | - int (*call)(H3270 *session); | 51 | + int (*call)(H3270 *session, void *userdata); |
52 | H3270 * session; | 52 | H3270 * session; |
53 | } TIMER; | 53 | } TIMER; |
54 | 54 | ||
@@ -74,17 +74,18 @@ static void static_SetSourceState(G_GNUC_UNUSED H3270 *session, void *id, int en | @@ -74,17 +74,18 @@ static void static_SetSourceState(G_GNUC_UNUSED H3270 *session, void *id, int en | ||
74 | static gboolean do_timer(TIMER *t) | 74 | static gboolean do_timer(TIMER *t) |
75 | { | 75 | { |
76 | if(!t->remove) | 76 | if(!t->remove) |
77 | - return t->call(t->session) != 0; | 77 | + return t->call(t->session,t->userdata); |
78 | 78 | ||
79 | return FALSE; | 79 | return FALSE; |
80 | } | 80 | } |
81 | 81 | ||
82 | -static void * static_AddTimer(H3270 *session, unsigned long interval, int (*call)(H3270 *session)) | 82 | +static void * static_AddTimer(H3270 *session, unsigned long interval, int (*call)(H3270 *session, void *userdata), void *userdata) |
83 | { | 83 | { |
84 | TIMER *t = g_malloc0(sizeof(TIMER)); | 84 | TIMER *t = g_malloc0(sizeof(TIMER)); |
85 | 85 | ||
86 | t->call = call; | 86 | t->call = call; |
87 | t->session = session; | 87 | t->session = session; |
88 | + t->userdata = userdata; | ||
88 | 89 | ||
89 | g_timeout_add_full(G_PRIORITY_DEFAULT, (guint) interval, (GSourceFunc) do_timer, t, g_free); | 90 | g_timeout_add_full(G_PRIORITY_DEFAULT, (guint) interval, (GSourceFunc) do_timer, t, g_free); |
90 | 91 |