Hi Iain, In case you indeed want to show the current value of some scheme object (and c-object/shared c-pointer doesn't cut it), here are some thoughts:
One obvious way would be to use some mutex around any s7 operations in both threads, and share the s7_scheme* instance in the 2. The low level thread would acquire a lock, "print" somehow the value to display. But that would have some performance impact. Another option would be to share 2 message queues between the 2 (ideally lock-free ones) and send messages from the low thread -> you read from the high thread, and then there you send some message to the low level. The message sending to high->low could be s7_object_to_c_string that if I recall correctly gives you back a c-string that you have to free yourself : so you would free it from the low-level thread). On Sat, 22 Jan 2022 at 03:08, Elijah Stone <[email protected]> wrote: > > > I'm just wondering what the recommended way would be to store scheme > > variables in some C memory, where the type and size is known on both > > ends (or can be described in a notification from one to the other). Any > > suggestions most appreciated! > > If by 'scheme variable' you mean an actual scheme-level object, I do not > think it is possible. If you want a scheme-level wrapper for a > (non-scheme) object which is shared, I would use a c object. (I think > there are some examples in snd.) I use s7_c_type_set_ref to set up > accessors (viz univeral applicative syntax), which is a bit nicer than > putting them in the global namespace. > > (And a question for Bil: any chance we can get more than a single word > of data for c objects? I know there is more space in s7_cell... :) > > -E > _______________________________________________ > Cmdist mailing list > [email protected] > https://cm-mail.stanford.edu/mailman/listinfo/cmdist _______________________________________________ Cmdist mailing list [email protected] https://cm-mail.stanford.edu/mailman/listinfo/cmdist
