doxygen hangs when many call graphs are generated.

Takashi Yano takashi.yano@nifty.ne.jp
Wed Jul 16 14:40:18 GMT 2025


On 2025年7月16日 22:45:32 +0900
Takashi Yano via Cygwin <cygwin@cygwin.com> wrote:
> On 2025年7月16日 21:36:04 +0900
> Takashi Yano via Cygwin <cygwin@cygwin.com> wrote:
> > On 2025年7月16日 21:13:59 +0900
> > Takashi Yano via Cygwin <cygwin@cygwin.com> wrote:
> > 
> > > On 2025年6月17日 21:46:47 +0900
> > > Takashi Yano wrote:
> > > > I encountered a problem of doxygen when many call graphs are generated.
> > > > 
> > > > How to reproduce:
> > > > 1) Make a empty directory.
> > > > 2) Place two files (Doxyfile, x.c) attached in the directory.
> > > > 3) Run doxygen in the directory.
> > > > 
> > > > It seems that this is a bug of cygwin1.dll and the cause is
> > > > a deadlock in newlib/libc/stdio/findfp.c:__fp_lock_all().
>> A simple reproducer is as follows.
>> #include <unistd.h>
> #include <stdio.h>
> #include <pthread.h>
> #include <sys/wait.h>
>> void *func(void *arg)
> {
> 	while (1) {
> 		FILE *f = fopen("/usr/bin/cygwin1.dll", "r"); /* Open something */
> 		fclose(f);
> 	}
> 	return NULL;
> }
>> int main()
> {
> 	pthread_t th;
> 	pthread_create(&th, NULL, func, NULL);
> 	int cnt = 0;
> 	while (1) {
> 		if (fork() == 0) {
> 			return 0;
> 		} else {
> 			wait(NULL);
> 			printf("Done %d\n", cnt++);
> 		}
> 	}
> }

I have submitted a patch for this issue to newlib mailing list.
-- 
Takashi Yano <takashi.yano@nifty.ne.jp>


More information about the Cygwin mailing list

AltStyle によって変換されたページ (->オリジナル) /