Ruby: coroutine/copy/Context.c File Reference

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

Functions
Context.c File Reference
`#include "Context.h"`
`#include <stdint.h>`

Go to the source code of this file.

## Functions
| __attribute__ ((noinline))
int | coroutine_save_stack (struct coroutine_context *context)
| __attribute__ ((noreturn, noinline))
| __attribute__ ((noreturn))
struct coroutine_context * | coroutine_transfer (struct coroutine_context *current, struct coroutine_context *target)

## Function Documentation

## ◆ __attribute__() [1/3]

__attribute__ | ( | (noinline) |  | ) |

Definition at line 40 of file Context.c.

## ◆ __attribute__() [2/3]

__attribute__ | ( | (noreturn) |  | ) |

Definition at line 117 of file Context.c.

References alloca, assert, coroutine_context::base, NULL, and coroutine_context::used.

## ◆ __attribute__() [3/3]

__attribute__ | ( | (noreturn, noinline) |  | ) |

Definition at line 88 of file Context.c.

References assert, coroutine_context::base, memcpy, coroutine_context::stack, coroutine_context::state, top, and coroutine_context::used.

## ◆ 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,
|  | struct coroutine_context * | target
| ) |  |

Definition at line 136 of file Context.c.

References assert, coroutine_context::base, coroutine_restore_stack(), coroutine_save_stack(), coroutine_context::from, and coroutine_context::stack.