Re: [Mono-list] jack-cil: dealing with a mono runtime crash and some threading issues.

2004-11-29 Thread Jorge =?ISO-8859-1?Q?Garc=EDa?=

Hi Francis,

no, I didn't. I'm very pressed to finish a project and I won't take a
look again until January.

I already think that it's a threading problem mixing (un)maneged code.
For jack-cil issue, I will ask jjack developers how they solved it in
java. Please, drop me a line if you obtain something.

See you,

Jorge


On dl, 2004-11-29 at 15:02, Francis Brosnan Blázquez wrote:
 Hi Jorge,
 
 Finally, did you solve your problem ?. I have the same scenario and I'm
 getting the same result. I think is due to calling back from unmanaged
 code to managed code from different threads. 
 
 I'm going to make some test to check this. 
 
 Cheers,
 

___
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


[Mono-list] System.Data.OracleClient - RAW support

2004-04-09 Thread eda
Hi,

I added support for basic RAW data type in System.Data.OracleClient library.
If is someone responsible for this library please add attached patch to
CVS tree.
Copy this patch to mcs directory and type:

patch p1  Systen.Data.OracleClinet-raw_support.diff

Eduard

--- mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciDefineHandle.cs 
 Sat Apr  3 17:19:03 2004
+++ 
mcs-my/class/System.Data.OracleClient/System.Data.OracleClient.Oci/OciDefineHandle.cs  
 Thu Apr  8 11:38:14 2004
@@ -110,6 +110,9 @@
definedSize = -1;
DefineLob (position, definedType);
return;
+case OciDataType.Raw:
+DefineRaw( position);
+return;
default:
DefineChar (position); // HANDLE ALL OTHERS AS CHAR 
FOR NOW
return;
@@ -205,6 +208,32 @@
}
}
 
+void DefineRaw( int position)
+{
+   ociType = OciDataType.Raw;
+   
+   value = Marshal.AllocHGlobal (definedSize);
+
+   int status = 0;
+
+   status = OciCalls.OCIDefineByPos (Parent,
+   out handle,
+   ErrorHandle,
+   position + 1,
+   value,
+   definedSize * 2,
+   ociType,
+   ref indicator,
+   ref rlenp,
+   IntPtr.Zero,
+   0);
+
+   if (status != 0) {
+   OciErrorInfo info = ErrorHandle.HandleError ();
+   throw new OracleException (info.ErrorCode, 
info.ErrorMessage);
+   }
+}
+
protected override void Dispose (bool disposing) 
{
if (!disposed) {
@@ -259,6 +288,12 @@
break;
case OciDataType.Date:
return UnpackDate ();
+case OciDataType.Raw:
+byte[] raw_buffer = new byte [Size];
+
+Marshal.Copy (Value, raw_buffer, 0, Size);
+
+return raw_buffer;
}
 
return DBNull.Value;