Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Multithreading question

Author: Andreas Herrmann

Date: 11:23:46 09/09/03

Go up one level in this thread


On September 09, 2003 at 04:10:53, Tony Werten wrote:

>On September 09, 2003 at 03:21:34, Andreas Herrmann wrote:
>
>>On September 09, 2003 at 02:14:08, Tony Werten wrote:
>>
>>Hi Tony,
>>
>>i have just read inside a Delphi internals book last week a 50 side long capitel
>>about Thread programming. It says that all local vars are save, but pay
>>attention for global vars. See the help to the win api function
>>EnterCriticalSection or the VCL object TCriticalSection as a good starting point
>>to this theme.
>>
>>Andreas
>
>Thanks ( to all)
>
>It seems that "write" is not threadsafe when used for writing to the console. I
>added some checks to make sure only 1 thread is writing at a time. Hope this
>solves the problems.
>
>The problems became worse when I changed from writeln to write which seems
>logic: more time spend in writing so bigger change for collisions.
>
>
>Tony

yes that can be a problem. I don't have this problem, because only my main
thread (= the chess engine) writes to the standard output and my second thread
polls the standard input and writes it to a own global buffer.

Your problem could also be solved with Mutex (like Robert describes). See
CreateMutex or OpenMutex for further help.

Andreas




>
>>
>>
>>
>>>Hi,
>>>
>>>maybe a silly question, but one get quite desperate during debugging. Suppose I
>>>have the followin code:
>>>
>>>procedure whatever(param:integer)
>>>begin
>>>   do_something_heavy_with_param;
>>>end;
>>>
>>>Say, the heavy stuff takes about 10 seconds.
>>>
>>>If during these secs another thread is calling this function, what happens ?
>>>
>>>Does every thread gets a "local copy" of the function ?
>>>
>>>On a single processor, there is a context switch, stuff is pushed on a stack,
>>>and everything is safe.
>>>
>>>What about a dual ? I get the feeling that param is actually changed by the
>>>second call.
>>>
>>>Tony



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.