chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] Crash with multithreaded TCP code


From: Christopher Collins
Subject: Re: [Chicken-users] Crash with multithreaded TCP code
Date: Sun, 6 Jul 2014 20:01:55 -0700

Yeah, it probably would have helped if I included that, wouldn't it? :)

Here it is:

    #!/usr/bin/csi -script

    (use extras)
    (use srfi-18)
    (use tcp)

    (define num-threads 2)

    (define (connect port)
      (let-values (((i o) (tcp-connect "192.168.1.101" port)))
        (read i)))

    (let loop ((port 9000) (threads '()))
      (if (= (length threads) num-threads)
        (for-each thread-join! threads)
        (loop (+ port 1) (cons (thread-start! (lambda () (connect port)))
                               threads))))


On Sun, Jul 6, 2014 at 7:35 PM, Alan Post <address@hidden> wrote:
Did I miss the source to threadtest.scm here?  The file that
contains the variable num-threads?  I don't see it.

-a

On Sun, Jul 06, 2014 at 05:41:44PM -0700, Christopher Collins wrote:
>    Version info:
>    ****** CHICKEN
>    ****** (c) 2008-2013, The Chicken Team
>    ****** (c) 2000-2007, Felix L. Winkelmann
>    ****** Version 4.8.0.3 (stability/4.8.0) (rev 091c3d9)
>    ****** linux-unix-gnu-x86-64 [ 64bit manyargs dload ptables ]
>    ****** compiled 2013-03-12 on aeryn.xorinia.dim (Darwin)
>
>    Hi,
>    ******
>    I'm encountering a crash with some multithreaded tcp code.** I am at a
>    loss as to what I'm doing wrong; I was hoping someone else could spot my
>    mistake.
>
>    Below is a simple program which produces the crash.** When I run it, I get
>    the following output:
>
>    ****** *** Error in `/usr/bin/csi': realloc(): invalid next size:
>    0x0000000001c05210 ***
>
>    I run the program as follows:
>    1. Start two instances of nc; one listening on [1]192.168.1.101:9000, the
>    other on [2]192.168.1.101:9001.** Redirect a ~1KB file to nc, such that nc
>    will send the file to whomever connects to it.
>    2. Run the scheme script
>
>    e.g.:
>    ****** nc -l 192.168.1.101 -p 9000 < ~/tmpfile
>    ****** nc -l 192.168.1.101 -p 9001 < ~/tmpfile
>    ****** ./threadtest.scm
>    ******
>    If I change the definition of num-threads from 2 to 1, the program runs to
>    completion.
>
>    Any ideas?
>
>    Thanks,
>    Christopher
>
> References
>
>    Visible links
>    1. http://192.168.1.101:9000/
>    2. http://192.168.1.101:9001/

> _______________________________________________
> Chicken-users mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/chicken-users


--
my personal website: http://c0redump.org/


reply via email to

[Prev in Thread] Current Thread [Next in Thread]