[#1207] warning in ruby extension eats memory — Eugene Scripnik <Eugene.Scripnik@...>

This message was posted to ruby-talk, but I didn't get responce from

22 messages 2003/07/01
[#1208] Re: warning in ruby extension eats memory — ts <decoux@...> 2003/07/01

>>>>> "E" == Eugene Scripnik <Eugene.Scripnik@itgrp.net> writes:

[#1209] Re: warning in ruby extension eats memory — Eugene Scripnik <Eugene.Scripnik@...> 2003/07/02

ts wrote:

[#1210] Re: warning in ruby extension eats memory — ts <decoux@...> 2003/07/02

>>>>> "E" == Eugene Scripnik <Eugene.Scripnik@itgrp.net> writes:

[#1211] Re: warning in ruby extension eats memory — Eugene Scripnik <Eugene.Scripnik@...> 2003/07/04

ts wrote:

[#1212] Re: warning in ruby extension eats memory — ts <decoux@...> 2003/07/04

>>>>> "E" == Eugene Scripnik <Eugene.Scripnik@itgrp.net> writes:

[#1213] Re: warning in ruby extension eats memory — Eugene Scripnik <Eugene.Scripnik@...> 2003/07/04

ts wrote:

[#1214] Re: warning in ruby extension eats memory — ts <decoux@...> 2003/07/04

>>>>> "E" == Eugene Scripnik <Eugene.Scripnik@itgrp.net> writes:

[#1215] Re: warning in ruby extension eats memory — Eugene Scripnik <Eugene.Scripnik@...> 2003/07/04

ts wrote:

[#1237] FTP.new with block — Gavin Sinclair <gsinclair@...>

Hi,

22 messages 2003/07/19
[#1238] Re: [Patch] FTP.new with block — ts <decoux@...> 2003/07/19

>>>>> "G" == Gavin Sinclair <gsinclair@soyabean.com.au> writes:

[#1240] Re: [Patch] FTP.new with block — Mathieu Bouchard <matju@...> 2003/07/19

[#1297] Fix for Bug 1058 — Markus Walser <walser@...>

Hi,

16 messages 2003/07/25

Re: stack problem

From: Mathieu Bouchard <matju@...>
Date: 2003-07-22 21:19:15 UTC
List: ruby-core #1278
On Wed, 16 Jul 2003, Yukihiro Matsumoto wrote:

> In message "Re: stack problem"
>     on 03/07/16, Mathieu Bouchard <matju@sympatico.ca> writes:
> |Interesting. This would work for me; however it would still be convenient
> |to not have to rely on modifying every access point.
> It would be.  But I have no idea yet to accomplish.

This is my current cleaned-up code for finding the bottom of the stack.
Does this make sense to you? Can you find any problems with it?

static volatile long bogus = 0; // to force *bp to be read in memory
static sigjmp_buf rescue_segfault;
static void trap_segfault (int patate) { siglongjmp(rescue_segfault,11); }
extern "C" void Init_stack(VALUE *addr);
static VALUE *localize_sysstack () {
	// get any stack address
	volatile long * volatile bp = (volatile long *)&bp;
	sighandler_t old = signal(11,trap_segfault);
	// read stack until segfault; segfault is redefined as a break.
	if (!sigsetjmp(rescue_segfault,0))
		for (;;bp-=STACK_GROW_DIRECTION) bogus += *bp;
	// restore signal handler
	signal(11,old);
	return (VALUE *)(bp+STACK_GROW_DIRECTION);
}

________________________________________________________________
Mathieu Bouchard                       http://artengine.ca/matju


In This Thread