We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 4e19719 commit 677ae5cCopy full SHA for 677ae5c
src/lwt/moonpool_lwt.ml
@@ -295,9 +295,16 @@ let spawn_lwt f : _ Lwt.t =
295
lwt_fut
296
297
let spawn_lwt_ignore f = ignore (spawn_lwt f : unit Lwt.t)
298
-let run_in_lwt_and_await (f : unit -> 'a) : 'a = await_lwt @@ spawn_lwt f
299
let on_lwt_thread = Main_state.on_lwt_thread
300
+let run_in_lwt_and_await (f : unit -> 'a) : 'a =
301
+ let st = Main_state.get_st () in
302
+ if Scheduler_state.on_lwt_thread_ st then
303
+ (* run immediately *)
304
+ f ()
305
+ else
306
+ await_lwt @@ spawn_lwt f
307
+
308
let lwt_main (f : _ -> 'a) : 'a =
309
let st = setup () in
310
(* make sure to cleanup *)
0 commit comments