Bug #11626
Updated by nobu (Nobuyoshi Nakada) over 9 years ago
`fprintf` fprintf will keep adding memory usage without releasing it. I was doing it in rails console, not sure if it makes any different. The code like this: ~~~c VALUE leak (VALUE self, VALUE in) { char *str = StringValuePtr(in); char *pstr; pstr = malloc (10240); strcat(pstr,str); fprintf (stdout, pstr); self = rb_str_new_cstr(pstr); free (pstr); return self; } void Init_extension(){ rb_define_global_function("leak", leak, 1); } ~~~ ~~~ruby 100000000.times{leak("lots of garbage")} ~~~ without the `fprintf` fprintf line the memory usage is normal, adding that line just keep adding memory, kill the console process will release the memory. If I do `100000.times{Process.wait(fork{ stuff})}`, 100000.times{Process.wait(fork{ stuff})}, memory also looks normal. Leaking somewhere????