Just a quick follow-up-

I tried the above program with a newer version of chicken (4.9.0.1), and it
works without issue.  So I am considering the problem solved.

Thanks for the cool piece of software.

Christopher


On Sun, Jul 6, 2014 at 8:01 PM, Christopher Collins <ccollins47...@gmail.com
> wrote:

> 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 <alanp...@sunflowerriver.org>
> 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
>> > Chicken-users@nongnu.org
>> > https://lists.nongnu.org/mailman/listinfo/chicken-users
>>
>>
>> --
>> my personal website: http://c0redump.org/
>>
>
>
_______________________________________________
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to