This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Racing Condition


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]