[so] Functii de sincronizare
Lucian Adrian Grijincu
lucian.grijincu at gmail.com
Sat Dec 1 00:44:43 EET 2007
Well, there's always GCC builtins ...
__sync_fetch_and_add, __sync_lock_test_and_set,
__sync_other_quirky_name_you_cant_remember
dar astea merg cat timp folosesti GCC sau (cred) XLC (compilatorul de la IBM).
Alte compilatoare vin cu alte builtin-uri de-astea.
sau plain old asm :D
asm volatile ("lock; xaddl %0,%1"
: "=r" (val), "=m" (*mem)
: "0" (val), "m" (*mem)
: "memory", "cc");
return val;
Cica asta aduna atomic "val" la ce era in zona la care pointeaza "mem".
http://svn.apache.org/viewvc/apr/apr/trunk/atomic/unix/ia32.c?view=markup
for whom it may concern: vezi pe aici niste implementari cat de cat portabile.
On Dec 1, 2007 12:26 AM, <cosminratiu at gmail.com> wrote:
> Exista un atomic_t si niste functii asemanatoare cu Interlocked..., dar cred
> ca e numai pentru kernel. Nu merge folosit in userspace.
>
>
>
> On Nov 30, 2007 11:42 AM, Catalin Iacob < iacobcatalin at gmail.com> wrote:
> >
> > On Thursday 29 November 2007 20:00:30 Vlad Cananau wrote:
> > > Ce functii de sincronizare avem voie sa folosim pe Windows?
> > > Ma refer la protejarea datelor cu un mutex/semafor, sau poate chiar
> > > CriticalSection, InterlockedVariable.
> >
> > Toate cele de mai sus :-). De ce n-ati avea voie sa le folositi din moment
> ce
> > sunt API nativ de Windows si s-au facut la laborator. Daca nu ai nevoie de
> > mutex cu nume e mai eficient Critical Section.
> >
> >
> > > Care este echivalentul incrementarilor/decrementarilor atomice, in
> POSIX?
> >
> > Eu unul nu stiu de un API care sa faca asta in POSIX. O cautare rapida pe
> > Google n-a relevat nimic. Banuiesc ca daca exista se punea in laborator.
> Sa
> > ma contrazica cineva daca gresesc :-D.
> >
> > Catalin
> > _______________________________________________
> > so mailing list
> > so at cursuri.cs.pub.ro
> > http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so
> >
>
>
> _______________________________________________
> so mailing list
> so at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so
>
>
--
Lucian
More information about the so
mailing list