Hi Folks,

I thought I'd try the fink list.... this is a follow-up to a question I 
posted yesterday. I've been digging a little deeper. What sorts of 
things cause "resource temporarily unavailable"?

thanks,
-steve

Begin forwarded message:

> From: Steve Spicklemire <[EMAIL PROTECTED]>
> Date: Sun Feb 24, 2002  12:41:42  PM America/Indianapolis
> To: Steve Spicklemire <[EMAIL PROTECTED]>
> Cc: [EMAIL PROTECTED], [EMAIL PROTECTED]
> Subject: Re: [Pythonmac-SIG] CXX/Numeric problem on MacOSX (was 
> building vpython on MacOSX)
>
> Hi (again),
>
> OK.. I found out that the error I'm getting is (reproducibly) actually 
> "error 35" described in /usr/include/sys/errno.h as:
>
> #define EAGAIN          35              /* Resource temporarily 
> unavailable */
> #ifndef _POSIX_SOURCE
> #define EWOULDBLOCK     EAGAIN          /* Operation would block */
>
> so.. it's saying that this operation would block or is temporarily 
> unavailable. Why? Any idea?
>
> thanks,
> -steve
>
> On Sunday, February 24, 2002, at 09:35  AM, Steve Spicklemire wrote:
>
>> Diggin around I find that this error is generated in the "ufuncmodule" 
>> of Numeric. If I try to debug this I get to.
>>
>> The message comes from the math_error() function if ufuncobject, where 
>> I set a breakpoint.
>>
>> Breakpoint 2, math_error () at Src/ufuncobject.c:407
>> (gdb) print errno
>> $1 = <unknown type>
>>
>> most unhelpful!
>>
>>

On Sunday, February 24, 2002, at 09:35  AM, Steve Spicklemire wrote:

>
> Hi MacPython Folks (and Paul Dubois),
>
>       Sorry for bothering you all again, but I'm getting closer to 
> sorting this out, but I think I need another hint. I've got vpython to 
> build on MacOSX, and it runs.. mostly.  VPython makes heavy use of the 
> Numeric module, and also uses Paul Dubois' CXX extension class system 
> for creating python objects with c++. I'm an expert on neither, though 
> I have used the Numeric a fair amount.
>
> Below is a simple program that shows the problem. "visual" is the 
> module that contains all the vpython stuff, and it does "from Numeric 
> import *" so that all the Numeric code is also in the visual module. It 
> also imports the cvisualmodule, built on Paul's CXX extension system. 
> There is magic in visual.py that calls the correct constructor from 
> cvisualmodule when certain functions in the visual namespace are called 
> (e.g., curve()). If I run this program with no command line arguments, 
> "band" is a simple instance of the dummy class "foo". If I run with a 
> command line argument, "band" is an instance of a "curve" object from 
> the cvisualmodule extension. The program dies no matter what binary 
> operation I perform on two arrays, subtraction, addition, etc. 
> Multiplication by a constant doesn't show this problem however, so it's 
> something in the use of two arrays.
>
> If band is a simple instance.... this program runs forever (well.. for 
> a really long time).
>
> If band is an instance of a curve object, this program fails after an 
> indeterminate number of iterations (from tens to thousands, with no 
> clear cause). I get e.g.,
>
> [vh10-15:~/Development/vpython/cvisual] steve% python test_wave2.py 1
> Visual-2001-12-30
> 2
> band is a curve
> iter 1 iter 2 iter 3 iter 4 iter 5 iter 6 iter 7 iter 8 iter 9 iter 10 
> iter 11 iter 12 iter 13 iter 14 iter 15 iter 16 iter 17 iter 18 iter 19 
> iter 20 iter 21 iter 22 iter 23 iter 24 iter 25 iter 26 iter 27 iter 28 
> iter 29 iter 30 iter 31 iter 32 iter 33 iter 34 iter 35 iter 36 iter 37 
> iter 38 iter 39 iter 40 iter 41 iter 42 iter 43 iter 44 iter 45 iter 46 
> iter 47 iter 48 iter 49 iter 50 iter 51 iter 52 iter 53 iter 54 iter 55 
> iter 56 iter 57 iter 58 iter 59 iter 60 iter 61 iter 62 iter 63 iter 64 
> iter 65 iter 66 iter 67 iter 68 iter 69 iter 70 iter 71 iter 72 iter 73 
> iter 74 iter 75 iter 76 iter 77 iter 78 iter 79 iter 80 iter 81 iter 82 
> iter 83 iter 84 iter 85 iter 86 iter 87 iter 88 iter 89 iter 90 iter 91 
> iter 92 iter 93 iter 94 iter 95 iter 96 iter 97 iter 98 iter 99 iter 
> 100 iter 101 iter 102 iter 103 iter 104 iter 105 iter 106 iter 107 iter 
> 108 iter 109 iter 110 iter 111 iter 112 iter 113 iter 114 iter 115 iter 
> 116 iter 117 iter 118 iter 119 iter 120 iter 121 iter 122 iter 123 iter 
> 124 iter 125 iter 126 iter 127 iter 128 iter 129 iter 130 iter 131 iter 
> 132 iter 133 iter 134 iter 135 iter 136 iter 137 iter 138 iter 139 iter 
> 140 iter 141 iter 142 iter 143 iter 144 iter 145 iter 146 iter 147 iter 
> 148 iter 149 iter 150 iter 151 iter 152 iter 153 iter 154 iter 155 iter 
> 156 iter 157 iter 158 iter 159 iter 160 iter 161 iter 162 iter 163 iter 
> 164 iter 165 iter 166 iter 167 iter 168 iter 169
> Traceback (most recent call last):
>   File "test_wave2.py", line 26, in ?
>     bleah = band.foo2 - band.foo1
> ValueError: unexpected math error
>
>
> Diggin around I find that this error is generated in the "ufuncmodule" 
> of Numeric. If I try to debug this I get to.
>
> The message comes from the math_error() function if ufuncobject, where 
> I set a breakpoint.
>
> Breakpoint 2, math_error () at Src/ufuncobject.c:407
> (gdb) print errno
> $1 = <unknown type>
>
> most unhelpful!
>
> static void math_error() {
> =>  if (errno == EDOM)
>         PyErr_SetString(PyExc_ValueError, "math domain error");
>     else if (errno == ERANGE)
>         PyErr_SetString(PyExc_OverflowError, "math range error");
>     else
>         PyErr_SetString(PyExc_ValueError, "unexpected math error");
> }
>
> I'm sure this is some strangeness in the way the CXX stuff builds on 
> MacOSX (this code works on Win/Linux/MacOS9). Does anybody have any 
> suggestions? (BTW I changed my makefile to use "c++" rather than "cc  
> with -lstdc++" and while it "works", the same problem persists.
>
> Anyway.. thanks for any thoughts. ;-)
>
> -steve
>
> import visual
>
> import sys
>
> print len(sys.argv)
>
> class foo:
>     pass
>
> if len(sys.argv)<2:
>     band = foo()
>     print "band is a simple class"
> else:
>     print "band is a curve"
>     band = visual.curve()
>
>
> band.foo1 = visual.array(10*[1],visual.Float)
> band.foo2 = visual.array(10*[2],visual.Float)
>
> i=0
>
> while 1:
>     i += 1
>     print "iter",i,
>     bleah = band.foo2 - band.foo1
>     if visual.sum(bleah*bleah) != 10.0:
>         print "Hmm. the math is wrong"
>     sys.stdout.flush()
>
>


_______________________________________________
Fink-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to