Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » U++ Library support » U++ MT-multithreading and servers » Use same variable in different threads
Re: Use same variable in different threads [message #30137 is a reply to message #30135] Fri, 10 December 2010 18:50 Go to previous messageGo to previous message
Didier is currently offline  Didier
Messages: 680
Registered: November 2008
Location: France
Contributor
Hi all,

Quote:


Actually, on second thoughts I think the code as written is fine without volatile because the mutex forces the shared data to be updated in memory. Possibly an atomic variable that is read or written outside of a mutex region is more likely to need volatile.



Yes this is the case, and is what I explained in my earlier post.

Maybe what you need Koldo, in the example you gave is something like this:
#include <CtrlLib/CtrlLib.h>

using namespace Upp;
class AtomicVar
{
	private:
		Atomic val;
	public:
		AtomicVar() {};
		
		AtomicVar( AtomicVar& p) { AtomicWrite(val, p); }
		template <class T>
		AtomicVar& operator=(const T& p) { AtomicWrite(val, p); }

		operator int() {return AtomicRead(val); }
	
};

GUI_APP_MAIN
{
	
	AtomicVar v;
	
	v=5;
	
	String str = "Value = ";
	
	str << (int)v;
	
	LOG(str);
	
	
	
}


All the accesses to 'v' are atomic, so in you're case all you have to do is replace
Atomic myRunProcess = true;

with
AtomicVar myRunProcess = true;


and just use myRunProcess normaly, without worrying about Atomic considerations !!


 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: OpenMP
Next Topic: Different native pthread.h implementations
Goto Forum:
  


Current Time: Thu May 09 14:44:05 CEST 2024

Total time taken to generate the page: 0.04522 seconds