chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] Thread safe hash tables?


From: felix winkelmann
Subject: Re: [Chicken-users] Thread safe hash tables?
Date: Mon, 6 Mar 2006 06:31:26 +0100

On 3/5/06, Kon Lovett <address@hidden> wrote:
>
> Yes. Maybe:
>
> (define-macro (call/synch MTX PROC)
>         (let ((MTX-VAR (gensym 'MTX)))
>                 `(let ((,MTX-VAR ,MTX))
>                         (dynamic-wind
>                                 (lambda () (mutex-lock! ,MTX-VAR))
>                                 (lambda () (,PROC (mutex-specific ,MTX-VAR)))
>                                 (lambda () (mutex-unlock! ,MTX-VAR))))))
>
> (define-macro (apply/synch MTX PROC . REST)
>         (let ((MTX-VAR (gensym 'MTX)))
>                 `(let ((,MTX-VAR ,MTX))
>                         (dynamic-wind
>                                 (lambda () (mutex-lock! ,MTX-VAR))
>                                 (lambda () (apply ,PROC ,@REST))
>                                 (lambda () (mutex-unlock! ,MTX-VAR))))))
>
> (define-macro (synch MTX . BODY)
>         (let ((MTX-VAR (gensym 'MTX)))
>                 `(let ([,MTX-VAR ,MTX])
>                         (dynamic-wind
>                                 (lambda () (mutex-lock! ,MTX-VAR))
>                                 (lambda () ,@BODY)
>                                 (lambda () (mutex-unlock! ,MTX-VAR))))))
>

Calls for eggification, I'd say.


cheers,
felix




reply via email to

[Prev in Thread] Current Thread [Next in Thread]