diff --git a/src/mred/mredmsw.cxx b/src/mred/mredmsw.cxx index ced6628ef2..fb97d4506e 100644 --- a/src/mred/mredmsw.cxx +++ b/src/mred/mredmsw.cxx @@ -180,6 +180,7 @@ static BOOL CALLBACK CheckWindow(HWND wnd, LPARAM param) info->remove ? PM_REMOVE : PM_NOREMOVE)) { info->wnd = wnd; info->c_return = c; + scheme_notify_sleep_progress(); return FALSE; } } @@ -217,6 +218,7 @@ int FindReady(MrEdContext *c, MSG *msg, int remove, MrEdContext **c_return) while (PeekMessage(&pmsg, NULL, 0x4000, 0xFFFF, PM_REMOVE)) { wxTranslateMessage(&pmsg); DispatchMessage(&pmsg); + scheme_notify_sleep_progress(); } } diff --git a/src/mzscheme/include/mzscheme.exp b/src/mzscheme/include/mzscheme.exp index 7c3ff49e19..4a296719d8 100644 --- a/src/mzscheme/include/mzscheme.exp +++ b/src/mzscheme/include/mzscheme.exp @@ -47,6 +47,7 @@ scheme_in_main_thread scheme_cancel_sleep scheme_start_sleeper_thread scheme_end_sleeper_thread +scheme_notify_sleep_progress scheme_make_thread_cell scheme_thread_cell_get scheme_thread_cell_set diff --git a/src/mzscheme/include/mzscheme3m.exp b/src/mzscheme/include/mzscheme3m.exp index 8a0104b167..8fac2b1357 100644 --- a/src/mzscheme/include/mzscheme3m.exp +++ b/src/mzscheme/include/mzscheme3m.exp @@ -47,6 +47,7 @@ scheme_in_main_thread scheme_cancel_sleep scheme_start_sleeper_thread scheme_end_sleeper_thread +scheme_notify_sleep_progress scheme_make_thread_cell scheme_thread_cell_get scheme_thread_cell_set diff --git a/src/mzscheme/include/mzwin.def b/src/mzscheme/include/mzwin.def index 63c7fbd1a0..e929f7794d 100644 --- a/src/mzscheme/include/mzwin.def +++ b/src/mzscheme/include/mzwin.def @@ -49,6 +49,7 @@ EXPORTS scheme_cancel_sleep scheme_start_sleeper_thread scheme_end_sleeper_thread + scheme_notify_sleep_progress scheme_make_thread_cell scheme_thread_cell_get scheme_thread_cell_set diff --git a/src/mzscheme/include/mzwin3m.def b/src/mzscheme/include/mzwin3m.def index c85242740b..6da7f874a0 100644 --- a/src/mzscheme/include/mzwin3m.def +++ b/src/mzscheme/include/mzwin3m.def @@ -49,6 +49,7 @@ EXPORTS scheme_cancel_sleep scheme_start_sleeper_thread scheme_end_sleeper_thread + scheme_notify_sleep_progress scheme_make_thread_cell scheme_thread_cell_get scheme_thread_cell_set diff --git a/src/mzscheme/src/port.c b/src/mzscheme/src/port.c index 8366023788..f238295bde 100644 --- a/src/mzscheme/src/port.c +++ b/src/mzscheme/src/port.c @@ -8061,14 +8061,14 @@ static void clean_up_wait(long result, OS_SEMAPHORE_TYPE *array, static int made_progress; static DWORD max_sleep_time; -void scheme_notify_sleep_progres() +void scheme_notify_sleep_progress() { made_progress = 1; } #else -void scheme_notify_sleep_progres() +void scheme_notify_sleep_progress() { } diff --git a/src/mzscheme/src/schemef.h b/src/mzscheme/src/schemef.h index 6856587fc4..8438b2b22b 100644 --- a/src/mzscheme/src/schemef.h +++ b/src/mzscheme/src/schemef.h @@ -125,6 +125,8 @@ MZ_EXTERN void scheme_cancel_sleep(void); MZ_EXTERN void scheme_start_sleeper_thread(void (*mzsleep)(float seconds, void *fds), float secs, void *fds, int hit_fd); MZ_EXTERN void scheme_end_sleeper_thread(); +MZ_EXTERN void scheme_notify_sleep_progress(); + MZ_EXTERN Scheme_Object *scheme_make_thread_cell(Scheme_Object *def_val, int inherited); MZ_EXTERN Scheme_Object *scheme_thread_cell_get(Scheme_Object *cell, Scheme_Thread_Cell_Table *cells); MZ_EXTERN void scheme_thread_cell_set(Scheme_Object *cell, Scheme_Thread_Cell_Table *cells, Scheme_Object *v); diff --git a/src/mzscheme/src/schemex.h b/src/mzscheme/src/schemex.h index dfaec8a86b..8a9341128d 100644 --- a/src/mzscheme/src/schemex.h +++ b/src/mzscheme/src/schemex.h @@ -99,6 +99,7 @@ int (*scheme_in_main_thread)(void); void (*scheme_cancel_sleep)(void); void (*scheme_start_sleeper_thread)(void (*mzsleep)(float seconds, void *fds), float secs, void *fds, int hit_fd); void (*scheme_end_sleeper_thread)(); +void (*scheme_notify_sleep_progress)(); Scheme_Object *(*scheme_make_thread_cell)(Scheme_Object *def_val, int inherited); Scheme_Object *(*scheme_thread_cell_get)(Scheme_Object *cell, Scheme_Thread_Cell_Table *cells); void (*scheme_thread_cell_set)(Scheme_Object *cell, Scheme_Thread_Cell_Table *cells, Scheme_Object *v); diff --git a/src/mzscheme/src/schemex.inc b/src/mzscheme/src/schemex.inc index a1eb923619..0979816462 100644 --- a/src/mzscheme/src/schemex.inc +++ b/src/mzscheme/src/schemex.inc @@ -55,6 +55,7 @@ scheme_extension_table->scheme_cancel_sleep = scheme_cancel_sleep; scheme_extension_table->scheme_start_sleeper_thread = scheme_start_sleeper_thread; scheme_extension_table->scheme_end_sleeper_thread = scheme_end_sleeper_thread; + scheme_extension_table->scheme_notify_sleep_progress = scheme_notify_sleep_progress; scheme_extension_table->scheme_make_thread_cell = scheme_make_thread_cell; scheme_extension_table->scheme_thread_cell_get = scheme_thread_cell_get; scheme_extension_table->scheme_thread_cell_set = scheme_thread_cell_set; diff --git a/src/mzscheme/src/schemexm.h b/src/mzscheme/src/schemexm.h index bb7e3dd2eb..405a50470f 100644 --- a/src/mzscheme/src/schemexm.h +++ b/src/mzscheme/src/schemexm.h @@ -55,6 +55,7 @@ #define scheme_cancel_sleep (scheme_extension_table->scheme_cancel_sleep) #define scheme_start_sleeper_thread (scheme_extension_table->scheme_start_sleeper_thread) #define scheme_end_sleeper_thread (scheme_extension_table->scheme_end_sleeper_thread) +#define scheme_notify_sleep_progress (scheme_extension_table->scheme_notify_sleep_progress) #define scheme_make_thread_cell (scheme_extension_table->scheme_make_thread_cell) #define scheme_thread_cell_get (scheme_extension_table->scheme_thread_cell_get) #define scheme_thread_cell_set (scheme_extension_table->scheme_thread_cell_set) diff --git a/src/mzscheme/src/thread.c b/src/mzscheme/src/thread.c index 9829897c7a..3bcc404c19 100644 --- a/src/mzscheme/src/thread.c +++ b/src/mzscheme/src/thread.c @@ -118,7 +118,6 @@ extern void *scheme_gmp_tls_load(long *s); extern void scheme_gmp_tls_unload(long *s, void *p); extern void scheme_gmp_tls_snapshot(long *s, long *save); extern void scheme_gmp_tls_restore_snapshot(long *s, void *data, long *save, int do_free); -extern void scheme_notify_sleep_progres(); static void check_ready_break(); @@ -3493,7 +3492,7 @@ static int check_sleep(int need_activity, int sleep_now) p2 = scheme_first_thread; while (p2) { if (p2->ran_some) { - scheme_notify_sleep_progres(); + scheme_notify_sleep_progress(); p2->ran_some = 0; } p2 = p2->next;