[Top][All Lists]
[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
- [Chicken-users] Thread safe hash tables?, Thomas Chust, 2006/03/04
- Re: [Chicken-users] Thread safe hash tables?, Kon Lovett, 2006/03/04
- Re: [Chicken-users] Thread safe hash tables?, Thomas Chust, 2006/03/04
- Re: [Chicken-users] Thread safe hash tables?, Kon Lovett, 2006/03/04
- Re: [Chicken-users] Thread safe hash tables?, Thomas Chust, 2006/03/04
- Re: [Chicken-users] Thread safe hash tables?, Kon Lovett, 2006/03/05
- Re: [Chicken-users] Thread safe hash tables?, Thomas Chust, 2006/03/05
- Re: [Chicken-users] Thread safe hash tables?,
felix winkelmann <=
- Re: [Chicken-users] Thread safe hash tables?, Kon Lovett, 2006/03/06