Newest at the top
| 2025-11-22 12:40:43 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 2025-11-22 12:39:34 +0100 | <probie> | initialise the ref to 2, add `f` as the last instruction to the finaliser for FP1, and have the finaliser for FP2 just be `f` |
| 2025-11-22 12:38:59 +0100 | <probie> | f = atomicModifyIORef ref (\x -> (x-1, x <= 1)) >>= (`when` runFP2Cleanup) |
| 2025-11-22 12:37:17 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Quit: ljdarj) |
| 2025-11-22 12:36:29 +0100 | <probie> | I think a ref count is a good idea. |
| 2025-11-22 12:36:22 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-11-22 12:35:50 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 2025-11-22 12:32:25 +0100 | jreicher | (~user@user/jreicher) (Quit: In transit) |
| 2025-11-22 12:25:44 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2025-11-22 12:21:35 +0100 | annamalai | (~annamalai@157.32.221.227) (Ping timeout: 245 seconds) |
| 2025-11-22 12:20:59 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-11-22 12:14:36 +0100 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
| 2025-11-22 12:14:29 +0100 | sp1ff | (~user@2601:1c2:4c00:6820::8bad) (Ping timeout: 260 seconds) |
| 2025-11-22 12:14:26 +0100 | Ranhir | (~Ranhir@157.97.53.139) Ranhir |
| 2025-11-22 12:13:19 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-11-22 12:13:19 +0100 | sp1ff` | (~user@2601:1c2:4c00:6820::e122) |
| 2025-11-22 12:08:47 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-11-22 11:58:09 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2025-11-22 11:53:24 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-11-22 11:42:06 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-11-22 11:39:54 +0100 | __monty__ | (~toonn@user/toonn) toonn |
| 2025-11-22 11:35:59 +0100 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
| 2025-11-22 11:35:22 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-11-22 11:34:29 +0100 | trickard_ | (~trickard@cpe-87-98-47-163.wireline.com.au) |
| 2025-11-22 11:34:15 +0100 | trickard_ | (~trickard@cpe-87-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-11-22 11:30:41 +0100 | synchromesh | (~john@2406:5a00:2412:2c00:1c88:6424:1e2a:539d) (Quit: WeeChat 4.1.1) |
| 2025-11-22 11:27:46 +0100 | tromp | (~textual@2001:1c00:3487:1b00:697a:bc7a:f580:408c) |
| 2025-11-22 11:24:34 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2025-11-22 11:24:02 +0100 | tromp | (~textual@2001:1c00:3487:1b00:697a:bc7a:f580:408c) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-11-22 11:19:59 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-11-22 11:15:02 +0100 | <jreicher> | ForkIO Asks a Question... |
| 2025-11-22 11:12:34 +0100 | X-Scale | (~ARM@6.67.114.89.rev.vodafone.pt) X-Scale |
| 2025-11-22 11:11:16 +0100 | <tomsmeding> | Yes, I'm not scared of a couple more forkIO, but it's a brilliant footgun |
| 2025-11-22 11:10:38 +0100 | <Leary> | Well, add more `forkIO`, I guess. |
| 2025-11-22 11:09:49 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2025-11-22 11:09:31 +0100 | <tomsmeding> | I do love the unexpected deadlock situation that the docs describe |
| 2025-11-22 11:09:01 +0100 | <tomsmeding> | Leary: That documentation is why I came here. :P |
| 2025-11-22 11:08:45 +0100 | trickard_ | (~trickard@cpe-87-98-47-163.wireline.com.au) |
| 2025-11-22 11:08:32 +0100 | trickard | (~trickard@cpe-87-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-11-22 11:08:22 +0100 | <Leary> | tomsmeding: <https://hackage.haskell.org/package/base-4.21.0.0/docs/Foreign-ForeignPtr.html#v:touchForeignPtr>, but based on the docs you might be SOL. |
| 2025-11-22 11:07:43 +0100 | tromp | (~textual@2001:1c00:3487:1b00:697a:bc7a:f580:408c) |
| 2025-11-22 11:05:07 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-11-22 11:02:08 +0100 | tromp | (~textual@2001:1c00:3487:1b00:697a:bc7a:f580:408c) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-11-22 10:56:10 +0100 | Frostillicus | (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 245 seconds) |
| 2025-11-22 10:55:48 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) wootehfoot |
| 2025-11-22 10:55:40 +0100 | <tomsmeding> | s/may only start/must only be allowed to start/ |
| 2025-11-22 10:54:05 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2025-11-22 10:52:36 +0100 | <tomsmeding> | between finalisers of ForeignPtrs, and this results in crashes in practice for us. Is there some standard pattern I can apply here to still make my code work? |
| 2025-11-22 10:52:34 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) L29Ah |
| 2025-11-22 10:52:34 +0100 | <tomsmeding> | I have two ForeignPtrs pointing to resources on some external device; the finaliser for ForeignPtr 1 needs ForeignPtr 2 in order to properly free its resource. (FP 2 is some kind of "device context", and FP 1 wraps an "object" on that device.) This means that the finaliser for FP 2 may only start running after the finaliser for FP 1 has fully completed. GHC does not honour ordering dependencies |