2026/06/11

Newest at the top

2026-06-11 12:17:21 +0000danz98560(~danza@user/danza) danza
2026-06-11 12:16:23 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-06-11 12:14:09 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine)
2026-06-11 12:10:34 +0000 <bwe> Leary: All I need is just `staggeredSpawner` from <https://hackage.haskell.org/package/ki-1.0.1.2#readme>. I call it with a list of the IO calls to execute, that's it.
2026-06-11 12:06:08 +0000trampi(~trampi@mx.trampusch.info) trampi
2026-06-11 12:03:19 +0000skum(~skum@user/skum) skum
2026-06-11 12:02:49 +0000Pixi`(~Pixi@user/pixi) (Ping timeout: 248 seconds)
2026-06-11 12:01:50 +0000Pixi(~Pixi@user/pixi) Pixi
2026-06-11 12:00:08 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-06-11 11:59:34 +0000FANTOM(~fantom@90.244.189.139)
2026-06-11 11:58:10 +0000FANTOM(~fantom@90.244.189.139) (Ping timeout: 265 seconds)
2026-06-11 11:58:06 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds)
2026-06-11 11:57:44 +0000weary-traveler(~user@user/user363627) (Read error: Connection reset by peer)
2026-06-11 11:52:36 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2026-06-11 11:49:57 +0000Square2(~Square@user/square) (Ping timeout: 265 seconds)
2026-06-11 11:42:22 +0000Square2(~Square@user/square) Square
2026-06-11 11:41:59 +0000Square2(~Square@user/square) (Remote host closed the connection)
2026-06-11 11:36:57 +0000gmg(~user@user/gehmehgeh) gehmehgeh
2026-06-11 11:36:13 +0000gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2026-06-11 11:31:50 +0000ridcully(~ridcully@p57b52230.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2026-06-11 11:28:40 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 276 seconds)
2026-06-11 11:28:21 +0000trampi(~trampi@mx.trampusch.info) (Quit: The Lounge - https://thelounge.chat)
2026-06-11 11:26:25 +0000rainbyte(~rainbyte@181.47.219.31) rainbyte
2026-06-11 11:26:10 +0000haritz(~hrtz@user/haritz) haritz
2026-06-11 11:26:10 +0000haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host)
2026-06-11 11:26:09 +0000haritz(~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8)
2026-06-11 11:25:41 +0000rainbyte(~rainbyte@181.47.219.31) (Read error: Connection reset by peer)
2026-06-11 11:21:04 +0000xff0x(~xff0x@2405:6580:b080:900:20a8:16d4:622c:805f)
2026-06-11 11:17:45 +0000Axman2447(~Axman6@user/axman6) (Ping timeout: 240 seconds)
2026-06-11 11:17:31 +0000Axman6(~Axman6@user/axman6) Axman6
2026-06-11 11:12:52 +0000 <merijn> Sure, but not ideal because if you do that in, e.g. a library you get into trouble of 2 libraries use the same library using that trick
2026-06-11 11:12:02 +0000 <int-e> also tbf, the unsafePerformIO for creating a global variable is fairly well understood
2026-06-11 11:12:01 +0000nyc(~nyc@user/nyc) nyc
2026-06-11 11:11:40 +0000nyc(~nyc@user/nyc) (Read error: Connection reset by peer)
2026-06-11 11:10:02 +0000 <int-e> but the myForkIO part is salvageable
2026-06-11 11:09:27 +0000 <int-e> yeah I'm not thrilled about that part either :)
2026-06-11 11:09:04 +0000 <Leary> And the "better method" is to use `unsafePerformIO`; lovely.
2026-06-11 11:06:34 +0000 <int-e> The Control.Concurrent actually has example code for waiting on threads with MVars: https://hackage-content.haskell.org/package/base-4.22.0.0/docs/Control-Concurrent.html#g:12
2026-06-11 11:06:17 +0000dtman34(~dtman34@2601:447:d17d:eaf2:8123:c1ff:6dae:d26b) (Ping timeout: 248 seconds)
2026-06-11 11:06:10 +0000dtman34_(~dtman34@2601:447:d17d:eaf2:8123:c1ff:6dae:d26b) dtman34
2026-06-11 11:04:03 +0000 <int-e> IO [IO ThreadId] <-- this is almost certainly the wrong type; if you collect the thread ids of threads that have been created you should end up with IO [ThreadId]
2026-06-11 11:01:57 +0000 <Leary> bwe: `forkIO` doesn't give you anything to wait on; you'd need to manually hook that up with, say, `MVar`s. I suggest using 'ki' for concurrency, which offers `awaitAll` out of the box.
2026-06-11 10:59:53 +0000dtman34(~dtman34@2601:447:d17d:eaf2:8123:c1ff:6dae:d26b) dtman34
2026-06-11 10:58:49 +0000dtman34(~dtman34@2601:447:d17d:eaf2:8123:c1ff:6dae:d26b) (Ping timeout: 248 seconds)
2026-06-11 10:56:33 +0000 <bwe> I am using Control.Concurrent.forkIO in `f` to create a `IO [IO ThreadId]`. Running `f` does return instantly without appearingly the constructed threads to be executed. How can I let the threads execute and `f` wait until all threads are finished?
2026-06-11 10:52:56 +0000poscat(~poscat@user/poscat) poscat
2026-06-11 10:50:55 +0000chromoblob(~chromoblo@user/chromob1ot1c) chromoblob\0
2026-06-11 10:50:35 +0000chromoblob(~chromoblo@user/chromob1ot1c) (Read error: Connection reset by peer)
2026-06-11 10:50:33 +0000dtman34(~dtman34@2601:447:d17d:eaf2:8123:c1ff:6dae:d26b) dtman34
2026-06-11 10:49:58 +0000poscat(~poscat@user/poscat) (Remote host closed the connection)