Hello gnu-prolog users,

On my 64bit x86 Linux,  I am trying to implement this process.

I have two source code, written in C and Prolog.
In the Prolog code, I have two functions foo and foo1.

So basically inside Prolog function foo, it calls function foo1 *through a
C wrapper,* then after function foo1 finished, it will return through
wrapper back to foo

it is something like :

---------------------------------------------------
           Prolog                |         C
---------------------------------------------------

         foo      ----- call ---- >  foo1_wrapper       normal
         foo1    <-----call -----   foo1_wrapper       normal
         foo1   -------return---> foo1_wrapper       normal
         foo     <-----return----   foo1_wrapper       *fail!*


The problem is that, it can never return back to function foo after
foo1_wrapper returns..

I have done several test(printf, write, valgrind and others...), and I am
pretty sure that foo1 returns right value, and foo1_wrapper returns foo1's
return value as well.

I am really confused right now, I should be able to look into the details,
however, I just don't know which way to go...

Has anyone have certain problems like this...?


Best Regards,
Shuai
_______________________________________________
Users-prolog mailing list
Users-prolog@gnu.org
https://lists.gnu.org/mailman/listinfo/users-prolog

Reply via email to