Ruby: coroutine/copy/Context.h File Reference

Ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c52d4d35cc6a173c89eda98ceffa2dcf)

Data Structures | Macros | Typedefs | Functions
Context.h File Reference
`#include <assert.h>`
`#include <stddef.h>`
`#include <setjmp.h>`
`#include <string.h>`
`#include <stdlib.h>`
`#include <alloca.h>`

Go to the source code of this file.

## Data Structures
struct | coroutine_context

## Macros
#define | COROUTINE __attribute__((noreturn)) void
#define | COROUTINE_LIMITED_ADDRESS_SPACE
#define | COROUTINE_PRIVATE_STACK

## Typedefs
typedef COROUTINE(* | coroutine_start) (struct coroutine_context *from, struct coroutine_context *self)

## Functions
int | coroutine_save_stack (struct coroutine_context *context)
COROUTINE | coroutine_restore_stack (struct coroutine_context *context)
struct coroutine_context * | coroutine_transfer (struct coroutine_context *current, register struct coroutine_context *target)

## Macro Definition Documentation

## ◆ COROUTINE

#define COROUTINE __attribute__((noreturn)) void

Definition at line 21 of file Context.h.

## ◆ COROUTINE_LIMITED_ADDRESS_SPACE

#define COROUTINE_LIMITED_ADDRESS_SPACE

Definition at line 24 of file Context.h.

## ◆ COROUTINE_PRIVATE_STACK

#define COROUTINE_PRIVATE_STACK

Definition at line 28 of file Context.h.

## Typedef Documentation

## ◆ coroutine_start

typedef COROUTINE(* coroutine_start) (struct coroutine_context *from, struct coroutine_context *self)

Definition at line 44 of file Context.h.

## Function Documentation

## ◆ coroutine_restore_stack()

COROUTINE coroutine_restore_stack | ( | struct coroutine_context * | context | ) |

Referenced by coroutine_transfer().

## ◆ coroutine_save_stack()

int coroutine_save_stack | ( | struct coroutine_context * | context | ) |

Definition at line 78 of file Context.c.

References coroutine_context::state.

Referenced by coroutine_transfer().

## ◆ coroutine_transfer()

struct coroutine_context * coroutine_transfer | ( | struct coroutine_context * | current,
|  | register struct coroutine_context * | target
| ) |  |