Racing Condition
Hei Chan
structurechart@yahoo.com
Thu Dec 20 07:16:00 GMT 2012
Hi,
Let's say I have 2 threads trying to call the function below without any synchronization:
void func(int x) {
static char buffer[512];
sprintf(buffer, "%d\n", x);
printf(buffer);
}
since buffer is static, and so obviously in some cases, there will be 2 threads trying to write to buffer, 1 writing to buffer and another reading from it, or 2 reading from it.
Since it is just an array of char, besides content/stdout might not be what the callers should be expecting; will it cause the program to crash.
Thanks in advance.
Cheers,
Hei
More information about the Gcc-help
mailing list