Hi Joel,
No, that was not the problem.
The buffer I talked about is actually a record.
First I filled record.Buffer and record.sizeofbuffer
Then I pass this record to a routine that calculates and adds a checksum
to the buffer, hereby adding 2 bytes to the buffer and thus adding 2 to
the size.
Only now the record is ready to be sent by the UDP
But the thread that does the sending just captured the buffer while it
was filled with the contents, but no crc added yet, so just inbetween
the steps mentioned above. Hence the size was 2 bytes smaller then expected.
Just developing on x86.
John
IntelliAdmin Support wrote:
John,
I have a question about that. Normally access to integer values is
atomic, and you do not need to thread protect them when accessing. Was
this size value a 32 bit integer value?
Or are you compiling on a different hardware platform than x86?
Thanks,
Joel
On Thu, Dec 24, 2009 at 6:49 AM, John vd Waeter <[email protected]> wrote:
Ok, solved.
Did not realize in multithread environment one thread could read a variabele
when other thread was just not finished filling this variabele....
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
--
John vd Waeter
www.jvdw.nl
www.gps-carpool.net
www.shotinthedark.nl
www.pdaforms.nl
www.dbapocket.nl
[email protected]
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus