This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


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

Re: __errno_location() like functionality in Cygwin


Hello again.

I wrote:

> I'm new to this list. I'd like to know, is it possible to define
> my own __errno() function, which will provide functionality like
> __errno_location() in linux?
> 
> This simple program works in linux, but doesn't under Cygwin:
[sample skipped]

I'm sorry, perhaps I sent too little information to make things to be more clear.

I have installed Cygwin 1.1.8 on win2000 and want to port multithreaded application
that currently works under Linux.

That application allocates for each created thread Thread Local Storage and saves in it
its own errno variable. Application defines its own function __errno_location in which
it returns address of that thread local errno variable. Can anybody shed some light
whether it possible or not to do the same trick under Cygwin? Or just say that it is
impossible?

I searched archives of this mailing list and have read FAQ and documentation about
two possible ways to achieve reentrancy using reent struct. The first method requires
to replace all standard library calls by their _*_r equivalents. That's not an option.
The second method requires to assign _impure_ptr to the pointer of thread local reent
structrure before EVERY libc call. Am I understand it correctly?

Thanks in advance for any pointers and suggestions.
--
Dmitry.



--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple


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