Esempio n. 1
0
int luv_fs_write(lua_State* L) {
  uv_file file = luaL_checkint(L, 1);
  off_t offset = luaL_checkint(L, 2);
  size_t length;
  uv_fs_t* req;
  void* chunk = (void*)luaL_checklstring(L, 3, &length);
  luv_fs_ref_t* ref = luv_fs_ref_alloc(L);
  luv_io_ctx_init(&ref->cbs);
  luv_io_ctx_add(L, &ref->cbs, 3);
  luv_io_ctx_callback_add(L, &ref->cbs, 4);
  req = &ref->fs_req;
  FS_CALL(write, 4, NULL, file, chunk, length, offset);
}
Esempio n. 2
0
/* Utility for storing the callback in the fs_req token */
uv_fs_t* luv_fs_store_callback(lua_State* L, int index) {
  luv_fs_ref_t* ref = luv_fs_ref_alloc(L);
  luv_io_ctx_init(&ref->cbs);
  luv_io_ctx_callback_add(L, &ref->cbs, index);
  return &ref->fs_req;
}
Esempio n. 3
0
void luv_io_ctx_unref(lua_State* L, luv_io_ctx_t *cbs)
{
  luaL_unref(L, LUA_REGISTRYINDEX, cbs->rdata);
  luaL_unref(L, LUA_REGISTRYINDEX, cbs->rcb);
  luv_io_ctx_init(cbs);
}