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 <[email protected]> wrote:
> On October 12, 2016 at 2:35:37 PM, Vincent St-Amour
> ([email protected]) 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 [email protected].
> 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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to