Re: MathLink: how do I wrap and call a subroutine that should return nothing
- To: mathgroup at smc.vnet.net
- Subject: [mg39010] Re: [mg38980] MathLink: how do I wrap and call a subroutine that should return nothing
- From: Omega Consulting <info at omegaconsultinggroup.com>
- Date: Fri, 24 Jan 2003 05:06:37 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
Even when the ReturnType is Manual, your C function needs to send something. It can really be anything, as long as it's a complete expression. For example, you could do /* send Print["Done"] to kernel */ MLPutFunction(stdlink, "Print", 1); MLPutString(stdlink, "Done"); Now SetValue will print "Done". But since you probably don't want anything from SetValue, you should send the symbol Null. MLPutSymbol(stdlink, "Null"); Null is an output that's automatically suppressed, so you won't see an output cell. At 07:05 AM 1/23/2003, Matthew D. Langston wrote: >How do I wrap and call a C subroutine that should return nothing back to >Mathematica. I want to somehow specify a :ReturnType: of "None" or "Void", >but mprep doesn't recognize those tokens. If I specify "Manual" then my >Mathematica session just hangs waiting for an answer from my MathLink >program. Does MathLink have a function like MLPutEmptyPacket() that just >tells Mathematica "Expect nothing from this MathLink function. It's OK to >stop waiting and return to your command loop". > >This is (part of) the template file I am using: > > >:Begin: >:Function: SetValue >:Pattern: SetValue[ value_?NumericQ ] >:Arguments: {value} >:ArgumentTypes: {Real} >:ReturnType: Manual >:End: > >void SetValue ( double value ) >{ > /* > * Do something useful with value. > * It doesn't make sense to return anything. > */ > > /* What goes here to keep Mathematica from hanging? */ >} > > >How do I specify a true MathLink subroutine that doesn't return a value to >Mathematica? Thank you for your help. > >Warmest regards, Matt -------------------------------------------------------------- Omega Consulting "The final answer to your Mathematica needs" http://omegaconsultinggroup.com