ExternalLibraryFunction.st
branchjv
changeset 17993 956342c369a2
parent 17976 50c2416f962a
child 18011 deb0c3355881
--- a/ExternalLibraryFunction.st	Wed Nov 28 10:22:05 2012 +0000
+++ b/ExternalLibraryFunction.st	Fri Nov 30 17:19:23 2012 +0000
@@ -118,7 +118,7 @@
 
   Synchronous vs. Asynchronous calls:
 
-    by default, foreign function calls are synchronous, effecftively blocking the whole ST/X system
+    by default, foreign function calls are synchronous, effectively blocking the whole ST/X system
     (that is by purpose,´because most C-code is not prepared for being interrupted, and also, normal
      code is not prepared for a garbage collector to move objects around, while another C thread might
      access the data...).
@@ -1577,6 +1577,7 @@
     argumentsOrNil isNil ifTrue:[
         ^ self primitiveFailed
     ].
+    thisContext isRecursive ifTrue: [^self primitiveFailed].
 
     anyBadArg := false.
     originalToSaveArgMapping := IdentityDictionary new.
@@ -1620,6 +1621,8 @@
         saveArg free.
     ].
     ^ result.
+
+    "Modified (format): / 06-11-2012 / 10:52:41 / anwild"
 ! !
 
 !ExternalLibraryFunction methodsFor:'testing'!
@@ -1636,11 +1639,11 @@
 !ExternalLibraryFunction class methodsFor:'documentation'!
 
 version_CVS
-    ^ '§Header: /cvs/stx/stx/libbasic/ExternalLibraryFunction.st,v 1.88 2012/10/20 20:54:26 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/ExternalLibraryFunction.st,v 1.90 2012/11/16 09:27:00 stefan Exp §'
 !
 
 version_SVN
-    ^ '$Id: ExternalLibraryFunction.st 10858 2012-10-29 22:07:56Z vranyj1 $'
+    ^ '$Id: ExternalLibraryFunction.st 10876 2012-11-30 17:19:23Z vranyj1 $'
 ! !
 
 ExternalLibraryFunction initialize!