#5 denoise seg faults on SMP machines!


First, thanks for a really great program! It works
miracles on my LPs - fortunately mostly in good
condition, but it is really nice to hear them without
clicks and other associated artifacts.

I use gwc on a dual Athlon MP machine with Suse 8.2.
But it seg faults when removing noise. I've tracked
this down to the stack being too small, which in turn
appears to be related to using libpthreads, but only on
an SMP machine! It turns out that when main() is
called, GWC has a stack limit of 2MB on an SMP
machine. My little test program, without using
threads, has no such limit on the same machine. The
de-noise operation requires about 3.5MB of stack
space, I have determined experimentally.

Having said all that, the cure is actually fairly simple.
It only requires adding a call to setrlimit() to set the
stack size to 4MB. This is done at the beginning of
"main()". I've attached the relevant code. While I
have not tried all the functions within GWC, I can now
denoise on this SMP machine. My code actually
checks to see if the limit is smaller than 4MB before
setting, thus it does nothing on a uniprocessor

Again, thanks for a truly useful piece of software,

Lindsay Harris

[I am a sourceforge.net member, but have forgotten
the password, and am awaiting a new one to arrive]


  • Nobody/Anonymous

    Modifications to gwc.c for SEGFAULT

  • Jeff Welty

    Jeff Welty - 2004-03-06
    • status: open --> open-fixed
  • Jeff Welty

    Jeff Welty - 2004-03-06
    • status: open-fixed --> closed-fixed

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks