Looks like the code has a race-condition. You could either define it away (using thread-cells (ie once per thread)) or add some syncronization.
Robby On Wed, Oct 12, 2016 at 4:53 PM, Scott Moore <sdmo...@fas.harvard.edu> wrote: > On October 12, 2016 at 2:35:37 PM, Vincent St-Amour > (stamo...@eecs.northwestern.edu) wrote: > > On Wed, 12 Oct 2016 16:31:46 -0500, > Scott Moore wrote: >> >> PS: is the documentation for use-once/c somewhere? >> >> I’ll add it to the docs when I get a chance. You can see the definition >> here: >> >> https://github.com/thinkmoore/racket-fuse/blob/master/private/filesystem.rkt#L132 >> >> use-once/c is a combinator that takes a procedure contract and makes it >> so that the contracted procedure can only be applied once. Ideally, I’d >> enforce the stronger property that you can use only one of the response >> or error callback for each procedure, but that would have been a bit >> trickier due to the need to attach the contract to two values at once. >> use-once/c is a nod to at least making sure you didn’t reuse them >> between operations... > > Any connection to Jesse's affine contracts? > > http://planet.racket-lang.org/package-source/tov/affine-contracts.plt/2/2/planet-docs/manual/index.html > > Vincent > > Neat! Hadn’t seen those before. My implementation is basically exactly > makeAffineFunContract from the paper but as a combinator instead of a new -> > contract. > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.