public inbox for git@vger.kernel.org 
 help / color / mirror / Atom feed
* libgit: git_setup_directory() is not reentrant
@ 2008-01-04 17:07 Christian Thaeter
  2008-01-04 20:40 ` Junio C Hamano
  0 siblings, 1 reply; 2+ messages in thread
From: Christian Thaeter @ 2008-01-04 17:07 UTC (permalink / raw)
  To: git

While working on a git-browser, I noticed that git_setup_directory() is
not reentrant. Once called it initializes (by calling other functions in
turn) several static/hidden variables which can't be altered afterwards.
This is ugly when one wants  to iterate over different repositories
(generating a list of available repos).

How could we fix this?
I would propose that subsequent 'git_setup_directory()' calls will
reinit the setup completely.

Another way would be to provide a 'git_setup_reset()' function which
lets one cleanup all setup things before calling 'git_setup_directory()'
again.

Comments?

	Christian

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: libgit: git_setup_directory() is not reentrant
  2008-01-04 17:07 libgit: git_setup_directory() is not reentrant Christian Thaeter
@ 2008-01-04 20:40 ` Junio C Hamano
  0 siblings, 0 replies; 2+ messages in thread
From: Junio C Hamano @ 2008-01-04 20:40 UTC (permalink / raw)
  To: Christian Thaeter; +Cc: git

Christian Thaeter <ct@pipapo•org> writes:

> While working on a git-browser, I noticed that git_setup_directory() is
> not reentrant.

Yup, that comes from a longstanding design of git that "a
command runs once and exits".  Do not call that twice, or help
the libification effort.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-01-04 20:41 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-04 17:07 libgit: git_setup_directory() is not reentrant Christian Thaeter
2008-01-04 20:40 ` Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox