This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: chdir() is not per thread and JFFS2 unmount
On Thu, 2004-04-01 at 15:41, Thomas Koeller wrote:
> Øyvind Harboe wrote:
> > While tracking down some other bugs I ran into a surprise with current
> > directories:
> >
> > 1. chdir() does not appear to be tracked per thread.
> >
> > This seems a bit strange. errno is tracked per thread, so why not
> > current directory?
> >
> > io/fileio/current/src/misc.cxx:cyg_dir cyg_cdir_dir = CYG_DIR_NULL;
> >
> > 2. Is chdir(CYG_DIR_NULL) supported?
No comment on this one?
I discovered that the code crashes if I pass in CYG_DIR_NULL, but the
current directory starts out as CYG_DIR_NULL, so it does not seem
unreasonable to be able to switch back to the staring point.
> >
> > http://sources.redhat.com/ml/ecos-discuss/2004-03/msg00155.html
> >
> >
> > Øyvind
>
> I'd say errno is a per-thread variable by its very nature, different
> threads making different calls expect to receive error information
> for the calls they made.
>
> This is different for the current directory - all threads share a
> common set of file descriptors and stream handles, and so it makes
> sense to also share a common current directory. Think of it as
> _one_ multithreaded process.
This does not give me a warm fuzzy feeling. :-)
I know of two applications other than mine that are broken since
they assume per thread chdir().
Who defines chdir()?
Presumably this is an API defined by someone other than eCos.
>
> tk
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss