doxygen hangs when many call graphs are generated.
Takashi Yano
takashi.yano@nifty.ne.jp
Wed Jul 16 13:45:32 GMT 2025
On Wed, 16 Jul 2025 21:36:04 +0900
Takashi Yano via Cygwin <cygwin@cygwin.com> wrote:
> On Wed, 16 Jul 2025 21:13:59 +0900
> Takashi Yano via Cygwin <cygwin@cygwin.com> wrote:
>
> > On Tue, 17 Jun 2025 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++);
}
}
}
--
Takashi Yano <takashi.yano@nifty.ne.jp>
More information about the Cygwin
mailing list