http://www.valadoc.org/#!api=gobject-2.0/GLib.WeakRef

This is a simple solution thanks to the good design of GObject.

Tal

> From: norjaidi.t...@ubd.edu.bn
> To: vala-list@gnome.org
> Date: Thu, 19 Dec 2013 08:59:44 +0800
> Subject: [Vala] "vala friendly" atomic pointer
> 
> Dear all,
> 
> I want to implement something like these:
>    *  x = AtomicPointer.@get (ref atomicRef)   // reader
> 
>    *  AtomicPointer.@set (ref atomicRef, newref)  // writer
> 
>    *  return AtomicPointer.@get (ref atomicRef)  // reader
> 
> but have the benefit of vala ref counting.
> 
> The best I can think of is:
> 
>    *  lock (atomicRef) { x = atomicRef; }
> 
>    *  lock (atomicRef) { atomicRef = newref; }
> 
>    *  lock (atomicRef) { return atomicRef; }
> 
> But lock is too course.
> e.g., lock (atomicRef) {x = atomicRef;} will also lock
> out other readers, whereas AtomicPointer.get won't.
> 
> I realise that the exclusive region is small.
> But if you have a lot of readers, the effect
> may be significant.
> 
> Any suggestions?
> 
> 
> Nice day
> Nor Jaidi Tuah
> 
> 
> 
> 
> 
> 
> PRIVILEGED/CONFIDENTIAL information may be contained in this message. If you 
> are neither the addressee (intended recipient) nor an authorised recipient of 
> the addressee, and have received this message in error, please destroy this 
> message (including attachments) and notify the sender immediately. STRICT 
> PROHIBITION: This message, whether in part or in whole, should not be 
> reviewed, retained, copied, reused, disclosed, distributed or used for any 
> purpose whatsoever. Such unauthorised use may be unlawful and may contain 
> material protected by the Official Secrets Act (Cap 153) of the Laws of 
> Brunei Darussalam. DISCLAIMER: We/This Department/The Government of Brunei 
> Darussalam, accept[s] no responsibility for loss or damage arising from the 
> use of this message in any manner whatsoever. Our messages are checked for 
> viruses but we do not accept liability for any viruses which may be 
> transmitted in or with this message.
> _______________________________________________
> vala-list mailing list
> vala-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/vala-list
                                          
_______________________________________________
vala-list mailing list
vala-list@gnome.org
https://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to