` Printed Icetips Article

Icetips Article



Clarion 6: Threading - 2
2002-12-15 -- Andy Ireland
 
Newsgroups: softvelocity.products.c55ee


Hi Arnor,

> Thanks for the clarification.  But how would you pass variables around
> between procedures on different threads?  Say you have a window on
> thread 2 and another window on thread 3 and they need to be accessing
> the same data, how would that best be done?  I've thought that you
> could perhaps use a non-threaded class that has these vars as
> properties and then use methods to update/retrieve the data, but
> wouldn't that have the same non-safe status as global variables?  I.e.
> couldn't two threads be trying to update the same class prop at the
> same time?

This is a flaw in clarion. A thread when created takes a long not a string.
It should have been a long and not a string and I hope it has changed. You
could however pass the address of something in the string. You should
actually keep each thread distinct for the most part but you could always
hand off using synchronisation. Why would threaded windows need to access
the same data? Why not one threaded window and the others called from it
SDI? If we're talking about application configuration data, then this can be
global and read only. If a thread needs to change it, sync the change and
send an app messate informing other threads it has changed. It would not
have the same status if wrapped using something like a reader / writer lock
or a spinlock again things that have not been discussed. This threading
change has been greatly oversimplified by nearly everyone.

The simplest change is to put a critical section around the methods but this
will just cause your app to block across all accessing threads which is not
always ideal. Most MDI apps do not share data across threads, unless it is
mutexed or is read only. However because people have been used to doing this
for a long time, I think this will actually cause more problems for clarion
programmers than had the change happened when Win95 came out.

People will need to do some learning.

Regards

Andy
Plugware Solutions.com Ltd,  taking the puzzle out of I.T
Tel : +44 1249 813335
Fax : +44 1249 813462



Printed May 2, 2024, 9:04 am
This article has been viewed/printed 35115 times.
Google search has resulted in 7 hits on this article since January 25, 2004.