| 2026-07-03 00:01:22 +0000 | acidjnk_new3 | (~acidjnk@p200300d6e74def226b80982df3b2d190.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 2026-07-03 00:01:54 +0000 | acidjnk | (~acidjnk@p200300d6e74def226b80982df3b2d190.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 2026-07-03 00:07:31 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 00:11:42 +0000 | Buliarou3 | (~gypsydang@46.232.210.139) (Ping timeout: 246 seconds) |
| 2026-07-03 00:12:06 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
| 2026-07-03 00:12:22 +0000 | Buliarou1 | (~gypsydang@46.232.210.139) (Ping timeout: 276 seconds) |
| 2026-07-03 00:14:41 +0000 | tremon | (~tremon@83-80-159-219.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in) |
| 2026-07-03 00:22:24 +0000 | Vizious | (~bes@user/Vizious) (Ping timeout: 245 seconds) |
| 2026-07-03 00:22:59 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 00:23:29 +0000 | Buliarou1 | (~gypsydang@46.232.210.139) Buliarous |
| 2026-07-03 00:23:35 +0000 | Buliarou2 | (~gypsydang@46.232.210.139) Buliarous |
| 2026-07-03 00:25:52 +0000 | Vizious | (~bes@user/Vizious) Vizious |
| 2026-07-03 00:29:33 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-07-03 00:39:00 +0000 | Vizious | (~bes@user/Vizious) (Ping timeout: 246 seconds) |
| 2026-07-03 00:40:57 +0000 | merijn | (~merijn@62.45.136.136) merijn |
| 2026-07-03 00:44:02 +0000 | Vizious | (~bes@user/Vizious) Vizious |
| 2026-07-03 00:45:11 +0000 | merijn | (~merijn@62.45.136.136) (Ping timeout: 245 seconds) |
| 2026-07-03 00:46:45 +0000 | davidlbowman | (~davidlbow@user/davidlbowman) (Read error: Connection reset by peer) |
| 2026-07-03 00:51:02 +0000 | davidlbowman | (~davidlbow@user/davidlbowman) davidlbowman |
| 2026-07-03 00:55:40 +0000 | myxos | (~myxos@174-18-74-239.tcso.qwest.net) (Ping timeout: 256 seconds) |
| 2026-07-03 00:56:17 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 01:00:38 +0000 | alicela1n | (~quarkyali@user/quarkyalice) quarkyalice |
| 2026-07-03 01:00:47 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-07-03 01:02:00 +0000 | alicela1n | (~quarkyali@user/quarkyalice) (Read error: Connection reset by peer) |
| 2026-07-03 01:02:10 +0000 | schuelermine | (~Thunderbi@user/schuelermine) schuelermine |
| 2026-07-03 01:07:15 +0000 | Vizious | (~bes@user/Vizious) (Ping timeout: 245 seconds) |
| 2026-07-03 01:11:39 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 01:12:10 +0000 | Vizious | (~bes@user/Vizious) Vizious |
| 2026-07-03 01:15:30 +0000 | xff0x | (~xff0x@2405:6580:b080:900:5358:223f:ceb9:810a) (Ping timeout: 248 seconds) |
| 2026-07-03 01:16:03 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-07-03 01:24:55 +0000 | ft | (~ft@p4fc2a871.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
| 2026-07-03 01:26:36 +0000 | ft | (~ft@p508dbce6.dip0.t-ipconnect.de) ft |
| 2026-07-03 01:27:00 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 01:31:22 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-07-03 01:34:12 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-07-03 01:38:44 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 256 seconds) |
| 2026-07-03 01:41:05 +0000 | puke | (~puke@user/puke) (Read error: Connection reset by peer) |
| 2026-07-03 01:42:23 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 01:42:43 +0000 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
| 2026-07-03 01:43:44 +0000 | puke | (~puke@user/puke) puke |
| 2026-07-03 01:46:54 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-07-03 01:52:54 +0000 | schuelermine | (~Thunderbi@user/schuelermine) (Ping timeout: 252 seconds) |
| 2026-07-03 01:55:19 +0000 | foul_owl | (~kerry@94.156.149.95) (Ping timeout: 245 seconds) |
| 2026-07-03 01:57:45 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 02:04:34 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-07-03 02:07:48 +0000 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Remote host closed the connection) |
| 2026-07-03 02:08:55 +0000 | foul_owl | (~kerry@94.156.149.93) foul_owl |
| 2026-07-03 02:09:25 +0000 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 2026-07-03 02:12:22 +0000 | weary-traveler | (~user@user/user363627) user363627 |
| 2026-07-03 02:15:47 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 02:24:29 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-07-03 02:25:28 +0000 | td_ | (~td@i5387092B.versanet.de) (Ping timeout: 271 seconds) |
| 2026-07-03 02:26:57 +0000 | td_ | (~td@i53870907.versanet.de) td_ |
| 2026-07-03 02:32:30 +0000 | picnoir | (~picnoir@about/aquilenet/vodoo/NinjaTrappeur) (Ping timeout: 252 seconds) |
| 2026-07-03 02:50:39 +0000 | fkw | (~fkw@user/fkw) (Remote host closed the connection) |
| 2026-07-03 02:50:51 +0000 | fkw | (~fkw@user/fkw) fkw |
| 2026-07-03 02:50:52 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 02:51:49 +0000 | picnoir | (~picnoir@about/aquilenet/vodoo/NinjaTrappeur) NinjaTrappeur |
| 2026-07-03 02:55:28 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-07-03 02:57:28 +0000 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
| 2026-07-03 02:58:24 +0000 | weary-traveler | (~user@user/user363627) user363627 |
| 2026-07-03 03:01:46 +0000 | res0nat0r0844909 | (~Fletch@falcon.whatbox.ca) (Quit: The Lounge - https://thelounge.chat) |
| 2026-07-03 03:02:38 +0000 | comonad | (~comonad@p200300d02734bf007432065c333bdb0c.dip0.t-ipconnect.de) (Quit: WeeChat 4.7.0-dev) |
| 2026-07-03 03:05:21 +0000 | comonad | (~comonad@p200300d02734bf007432065c333bdb0c.dip0.t-ipconnect.de) |
| 2026-07-03 03:06:14 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 03:11:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-07-03 03:16:12 +0000 | fkw | (~fkw@user/fkw) (Remote host closed the connection) |
| 2026-07-03 03:21:41 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 03:26:24 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-07-03 03:36:59 +0000 | karenw | (~karenw@user/karenw) (Quit: Deep into that darkness peering...) |
| 2026-07-03 03:37:01 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 03:41:34 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-07-03 03:46:55 +0000 | dolio | (~dolio@130.44.140.168) dolio |
| 2026-07-03 03:52:20 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 03:54:06 +0000 | czan | (~czan@user/mange) czan |
| 2026-07-03 03:58:59 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-07-03 04:00:21 +0000 | res0nat0r0844909 | (~Fletch@falcon.whatbox.ca) |
| 2026-07-03 04:01:22 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 04:04:09 +0000 | Googulator12 | (~Googulato@84-236-126-66.pool.digikabel.hu) |
| 2026-07-03 04:06:05 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2026-07-03 04:07:42 +0000 | Googulator90 | (~Googulato@84-236-126-66.pool.digikabel.hu) (Ping timeout: 245 seconds) |
| 2026-07-03 04:10:23 +0000 | machinedgod | (~machinedg@d108-173-95-19.abhsia.telus.net) (Ping timeout: 272 seconds) |
| 2026-07-03 04:16:41 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 04:21:58 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
| 2026-07-03 04:32:05 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 04:36:25 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-07-03 04:47:27 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 04:52:31 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-07-03 05:02:49 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 05:05:35 +0000 | davidlbowman | (~davidlbow@user/davidlbowman) (Ping timeout: 245 seconds) |
| 2026-07-03 05:07:58 +0000 | chromoblob | (~chromoblo@user/chromob1ot1c) (Remote host closed the connection) |
| 2026-07-03 05:08:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
| 2026-07-03 05:08:14 +0000 | chromoblob | (~chromoblo@user/chromob1ot1c) chromoblob\0 |
| 2026-07-03 05:18:11 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 05:22:30 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-07-03 05:33:33 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 05:40:21 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 262 seconds) |
| 2026-07-03 05:42:00 +0000 | sourdecor | (uid526401@id-526401.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 2026-07-03 05:43:53 +0000 | haritz | (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in) |
| 2026-07-03 05:51:35 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 05:56:00 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-07-03 06:02:19 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 06:04:15 +0000 | rabbull721 | (~rabbull@xdsl-31-164-93-219.adslplus.ch) (Read error: Connection reset by peer) |
| 2026-07-03 06:04:33 +0000 | rabbull721 | (~rabbull@xdsl-31-164-93-219.adslplus.ch) |
| 2026-07-03 06:07:33 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 2026-07-03 06:10:22 +0000 | absentia | (~henricus@user/absentia) (Ping timeout: 244 seconds) |
| 2026-07-03 06:17:07 +0000 | troydm | (~troydm@user/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset) |
| 2026-07-03 06:17:43 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 06:17:54 +0000 | chromoblob | (~chromoblo@user/chromob1ot1c) (Ping timeout: 248 seconds) |
| 2026-07-03 06:18:49 +0000 | chromoblob | (~chromoblo@user/chromob1ot1c) chromoblob\0 |
| 2026-07-03 06:19:09 +0000 | tromp | (~textual@2001:1c00:340e:2700:79a4:d68c:bc23:a22) |
| 2026-07-03 06:19:44 +0000 | takuan | (~takuan@d8D86B996.access.telenet.be) |
| 2026-07-03 06:20:11 +0000 | michalz | (~michalz@185.246.207.200) |
| 2026-07-03 06:22:10 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-07-03 06:22:35 +0000 | Googulator12 | (~Googulato@84-236-126-66.pool.digikabel.hu) (Quit: Client closed) |
| 2026-07-03 06:22:49 +0000 | Googulator12 | (~Googulato@84-236-126-66.pool.digikabel.hu) |
| 2026-07-03 06:22:59 +0000 | henricus | (~henricus@user/institor) institor |
| 2026-07-03 06:23:03 +0000 | henricus | absentia |
| 2026-07-03 06:23:07 +0000 | absentia | (~henricus@user/institor) (Changing host) |
| 2026-07-03 06:23:07 +0000 | absentia | (~henricus@user/absentia) absentia |
| 2026-07-03 06:29:13 +0000 | Googulator12 | (~Googulato@84-236-126-66.pool.digikabel.hu) (Quit: Client closed) |
| 2026-07-03 06:29:28 +0000 | Googulator12 | (~Googulato@84-236-126-66.pool.digikabel.hu) |
| 2026-07-03 06:33:08 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 06:34:21 +0000 | czan | (~czan@user/mange) (Quit: Quittin' time!) |
| 2026-07-03 06:37:23 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-07-03 06:47:22 +0000 | Sgeo_ | (~Sgeo@user/sgeo) Sgeo |
| 2026-07-03 06:48:26 +0000 | merijn | (~merijn@62.45.136.136) merijn |
| 2026-07-03 06:48:44 +0000 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
| 2026-07-03 06:51:19 +0000 | Sgeo | (~Sgeo@user/sgeo) (Ping timeout: 264 seconds) |
| 2026-07-03 06:52:25 +0000 | synchromesh | (~john@2406:5a00:247e:1500:a691:b1ff:0:f9d) (Read error: Connection reset by peer) |
| 2026-07-03 06:53:12 +0000 | merijn | (~merijn@62.45.136.136) (Ping timeout: 252 seconds) |
| 2026-07-03 06:57:01 +0000 | ft | (~ft@p508dbce6.dip0.t-ipconnect.de) (Quit: leaving) |
| 2026-07-03 06:57:58 +0000 | synchromesh | (~john@2406:5a00:247e:1500:a691:b1ff:0:f9d) synchromesh |
| 2026-07-03 07:00:51 +0000 | jreicher | (~joelr@user/jreicher) (Quit: In transit) |
| 2026-07-03 07:03:40 +0000 | CiaoSen | (~Jura@2a02:3100:58eb:b00:4e50:ddff:fe9b:8922) CiaoSen |
| 2026-07-03 07:04:54 +0000 | marinelli | (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli) |
| 2026-07-03 07:07:17 +0000 | Googulator12 | (~Googulato@84-236-126-66.pool.digikabel.hu) (Ping timeout: 245 seconds) |
| 2026-07-03 07:18:41 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 07:25:38 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-07-03 07:34:15 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-07-03 07:36:44 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 07:38:45 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 272 seconds) |
| 2026-07-03 07:41:36 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-07-03 07:41:46 +0000 | emmanuelux | (~em@user/emmanuelux) (Quit: bye) |
| 2026-07-03 07:43:11 +0000 | Sgeo_ | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 2026-07-03 07:52:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-07-03 07:56:15 +0000 | tromp | (~textual@2001:1c00:340e:2700:79a4:d68c:bc23:a22) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2026-07-03 07:58:22 +0000 | comerijn | (~merijn@77.242.116.146) merijn |
| 2026-07-03 08:02:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-07-03 08:02:07 +0000 | __monty__ | (~toonn@user/toonn) toonn |
| 2026-07-03 08:08:31 +0000 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 272 seconds) |
| 2026-07-03 08:09:41 +0000 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 2026-07-03 08:11:20 +0000 | chele | (~chele@user/chele) chele |
| 2026-07-03 08:15:22 +0000 | jreicher | (~joelr@user/jreicher) jreicher |
| 2026-07-03 08:53:47 +0000 | <tomsmeding> | monochrom: even without -threaded, because the loop allocates, the scheduler should run other stuff too |
| 2026-07-03 08:54:20 +0000 | danza | (~danza@user/danza) danza |
| 2026-07-03 08:54:44 +0000 | <tomsmeding> | and assuming a scheduler that divides processor time roughly equally if multiple threads are runnable, that should only take up roughly half of the CPU time |
| 2026-07-03 08:54:55 +0000 | tromp | (~textual@2001:1c00:340e:2700:79a4:d68c:bc23:a22) |
| 2026-07-03 09:01:02 +0000 | Googulator | (~Googulato@team.broadbit.hu) |
| 2026-07-03 09:03:00 +0000 | danz86816 | (~danza@user/danza) danza |
| 2026-07-03 09:05:29 +0000 | danza | (~danza@user/danza) (Ping timeout: 269 seconds) |
| 2026-07-03 09:06:00 +0000 | foul_owl | (~kerry@94.156.149.93) (Ping timeout: 245 seconds) |
| 2026-07-03 09:07:35 +0000 | acidjnk | (~acidjnk@p200300d6e74def2221f11a67e571af71.dip0.t-ipconnect.de) acidjnk |
| 2026-07-03 09:10:24 +0000 | rainbyte | (~rainbyte@181.47.219.31) (Read error: Connection reset by peer) |
| 2026-07-03 09:12:52 +0000 | danz86816 | (~danza@user/danza) (Remote host closed the connection) |
| 2026-07-03 09:13:07 +0000 | danza | (~danza@user/danza) danza |
| 2026-07-03 09:13:11 +0000 | rainbyte | (~rainbyte@181.47.219.31) rainbyte |
| 2026-07-03 09:13:53 +0000 | <comerijn> | tomsmeding: I can imagine some degenerate cases pretty easily |
| 2026-07-03 09:14:02 +0000 | <comerijn> | Since the GHC scheduler is non-preempting |
| 2026-07-03 09:15:27 +0000 | <tomsmeding> | comerijn: I know it's not preempting, but doesn't an allocation implicitly count as a yield point? |
| 2026-07-03 09:16:23 +0000 | <jaror> | I tried to make a reproducer: https://paste.tomsmeding.com/VxBoNFbx |
| 2026-07-03 09:16:34 +0000 | <comerijn> | tomsmeding: Only when you trigger GC |
| 2026-07-03 09:16:42 +0000 | <comerijn> | tomsmeding: iirc |
| 2026-07-03 09:16:54 +0000 | <tomsmeding> | what, really? The scheduler only switches tasks on GC? |
| 2026-07-03 09:16:56 +0000 | <comerijn> | The allocation happy path doesn't preempt I don't think? |
| 2026-07-03 09:17:03 +0000 | <tomsmeding> | oh right, on nursery GC |
| 2026-07-03 09:17:14 +0000 | <tomsmeding> | well they did say that this loop was responsible for >50% of their app's allocations |
| 2026-07-03 09:17:27 +0000 | <comerijn> | That said, there was barely any reason to not use -threaded 10 years ago |
| 2026-07-03 09:17:31 +0000 | <comerijn> | There's even less reason now |
| 2026-07-03 09:17:41 +0000 | <tomsmeding> | in context it's unclear whether that diagnosis is accurate, but if it is, then the point about "task switching happens only at GC" is moot :p |
| 2026-07-03 09:17:54 +0000 | <jaror> | But the elapsed time does not change |
| 2026-07-03 09:18:17 +0000 | <comerijn> | hold up |
| 2026-07-03 09:18:23 +0000 | <tomsmeding> | jaror: if you swap line 20 for line 21? |
| 2026-07-03 09:18:27 +0000 | <comerijn> | Did the default GC settings get changed yet? |
| 2026-07-03 09:18:30 +0000 | <jaror> | yeah |
| 2026-07-03 09:18:36 +0000 | <tomsmeding> | comerijn: to what |
| 2026-07-03 09:18:37 +0000 | <jaror> | It only affects mutator time |
| 2026-07-03 09:18:38 +0000 | <comerijn> | Or is -threaded still using parallel GC |
| 2026-07-03 09:18:47 +0000 | <tomsmeding> | nonmoving GC is not default AFAIK |
| 2026-07-03 09:18:53 +0000 | <comerijn> | tomsmeding: That's not what I mean |
| 2026-07-03 09:18:58 +0000 | <tomsmeding> | oh |
| 2026-07-03 09:19:04 +0000 | <tomsmeding> | you mean +RTS -qg? |
| 2026-07-03 09:19:06 +0000 | <comerijn> | yeah |
| 2026-07-03 09:19:18 +0000 | <comerijn> | I'm out of the loop if that's default yet |
| 2026-07-03 09:19:23 +0000 | <comerijn> | And if not, definitely try that first |
| 2026-07-03 09:19:38 +0000 | <comerijn> | It's especially heinous with -N |
| 2026-07-03 09:19:43 +0000 | foul_owl | (~kerry@94.156.149.95) foul_owl |
| 2026-07-03 09:20:04 +0000 | <comerijn> | That is my initial spidey sense looking at that code |
| 2026-07-03 09:20:30 +0000 | <tomsmeding> | jaror: when main exits, the thread also exits, right? (I forget) |
| 2026-07-03 09:20:37 +0000 | <comerijn> | Yes |
| 2026-07-03 09:20:45 +0000 | <comerijn> | Also |
| 2026-07-03 09:20:54 +0000 | <comerijn> | Not that most STM operations are **not** fair |
| 2026-07-03 09:20:57 +0000 | <comerijn> | *Note |
| 2026-07-03 09:21:12 +0000 | <tomsmeding> | I have a rough idea of how STM is implemented in the RTS |
| 2026-07-03 09:21:21 +0000 | <tomsmeding> | it has no concurrency guarantees whatsoever |
| 2026-07-03 09:21:26 +0000 | <tomsmeding> | it just works most of the time |
| 2026-07-03 09:21:35 +0000 | <tomsmeding> | there's even locks |
| 2026-07-03 09:21:50 +0000 | <comerijn> | of course, how else would you have transactional behaviour |
| 2026-07-03 09:22:00 +0000 | <tomsmeding> | you have lock-free and even wait-free STM algorithms |
| 2026-07-03 09:22:10 +0000 | <tomsmeding> | they are probably slower than what's in the RTS though :p |
| 2026-07-03 09:22:10 +0000 | <comerijn> | but my point is more that, unlike MVar and other blocking operations guarantee fairness in terms of thread activity |
| 2026-07-03 09:22:24 +0000 | <comerijn> | And since we we're discussing equal division of thread activity earlier |
| 2026-07-03 09:22:35 +0000 | <comerijn> | STM does **not** actively ensure that |
| 2026-07-03 09:22:55 +0000 | <tomsmeding> | comerijn: STM is most actively unfair when you have a repeated small transaction invalidating a larger transaction |
| 2026-07-03 09:23:15 +0000 | <tomsmeding> | this is a very small transaction that runs very often, so that sounds like the prototypical "nothing else can ever do anything situation" |
| 2026-07-03 09:23:22 +0000 | <comerijn> | tomsmeding: Sure, but you still get thundering herd races if you have lots of threads |
| 2026-07-03 09:23:25 +0000 | <tomsmeding> | but: if the queue is empty, flushTQueue doesn't do any writeTVar |
| 2026-07-03 09:23:40 +0000 | <tomsmeding> | and when it succeeds, it empties the queue |
| 2026-07-03 09:23:41 +0000 | <comerijn> | jaror: What exactly are you trying to do? It's not really clear from this example |
| 2026-07-03 09:23:56 +0000 | <comerijn> | i.e. do you really need/want a transactional queue |
| 2026-07-03 09:24:03 +0000 | <tomsmeding> | so after the flushTQueue has succeeded, another transaction should be able to get in |
| 2026-07-03 09:24:20 +0000 | <jaror> | I'm just trying to make a reproducer of absentia's problem |
| 2026-07-03 09:24:28 +0000 | <tomsmeding> | comerijn: there was someone here yesterday who complained about very slow code and found out that they were doing this |
| 2026-07-03 09:24:31 +0000 | <comerijn> | Also |
| 2026-07-03 09:24:37 +0000 | <comerijn> | threadDelay 10 seems insane? |
| 2026-07-03 09:24:42 +0000 | <tomsmeding> | and replacing their equivalent of line 20 with 21 fixed the problem |
| 2026-07-03 09:25:14 +0000 | <tomsmeding> | comerijn: https://tirclogv.tomsmeding.com/cal/haskell/2026-07-02?eid=aEtUaHCT7#ev-aEtUaHCT7 |