Zaher Dirkey ha scritto:
On Wed, May 25, 2011 at 2:33 PM, <[email protected]
<mailto:[email protected]>> wrote:
On Wed, 25 May 2011, Giuliano Colla wrote:
[email protected] <mailto:[email protected]>
ha scritto:
On Wed, 25 May 2011, Vincent Snijders wrote:
2011/5/25 <[email protected]
<mailto:[email protected]>>:
No. You should use a
TMultiReadExclusiveWriteSynchronizer object to
synchronize access to your object, or use
a critical section.
Ehm, he made sure that only one thread
accesses the TStringList at a
time.
To me, this is not obvious from his mail ?
I thought it was obvious from:
"The logic of the application itself made it sure that
there was no
conflict whatsoever. "
But maybe that was not not what Giuliano meant by "no
conflict".
This is what was not clear to me...
If no conflict can mean 'it adds only', then there is a
conflict at a lower
level, because adding can mean a reallocation of the array
of strings.
The full picture is:
1) The main thread creates the String List, and doesn't touch
it any more.
2) The other thread is activated and it is the only one which
appends strings to the list.
3) When the other thread is terminated, the main thread
processes the list.
I would expect that whatever activity occurs as an effect of
appending strings (such as reallocating the array) would occur
in the context of the thread performing the action, that all
pertinent information is stored in fields of the object
itself, and that the main thread is never involved. Am I
wrong on this aspect?
No, you are right. If it is designed as described above, then it
should
work.
Michael.
But that mean he have only one thread worked at same time.
There's quite a number of other activities going on, which I didn't
describe, because they were not relevant in this context. If what I
described had been the only task to perform, then multithreading would
be unnecessary.
Giuliano
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus