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: Kon Lovett
Subject: Re: [Chicken-users] Thread safe hash tables?
Date: Mon, 6 Mar 2006 11:59:28 -0800

Done. See synch.egg

Best Wishes,
Kon

On Mar 5, 2006, at 9:31 PM, felix winkelmann wrote:

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]