NAME ^

src/inter_cb.c - Parrot Interpreter - Callback Function Handling

DESCRIPTION ^

NCI callback functions may run whenever the C code executes the callback. To be prepared for asynchronous callbacks these are converted to callback events.

Often callbacks should run synchronously. This can only happen when the C-library calls the callback, because Parrot called a function in the C-library.

Functions ^

PARROT_API PARROT_CANNOT_RETURN_NULL PARROT_WARN_UNUSED_RESULT PMC *Parrot_make_cb(PARROT_INTERP, PMC *sub, PMC *user_data, STRING *cb_signature)

Create a callback function according to pdd16.

static void verify_CD(NOTNULL(char *external_data), NOTNULL(PMC *user_data))

Verify user_data PMC then continue with callback_CD

static void callback_CD(PARROT_INTERP, NOTNULL(char *external_data), NOTNULL(PMC *user_data))

Common callback function handler. See pdd16.

PARROT_API void Parrot_run_callback(PARROT_INTERP, PMC *user_data, char *external_data)

Run a callback function. The PMC* user_data holds all necessary items in its properties.

PARROT_API void Parrot_callback_C(NOTNULL(char *external_data), NOTNULL(PMC *user_data))

PARROT_API void Parrot_callback_D(NOTNULL(PMC *user_data), NOTNULL(char *external_data))

NCI callback functions. See pdd16.


parrot