The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Coro::Storable - offer a more fine-grained Storable interface

SYNOPSIS

 use Coro::Storable;

DESCRIPTION

This module implements a few functions from the Storable module in a way so that it cede's more often. Some applications (such as the Crossfire game server) sometimes need to load large Storable objects without blocking the server for a long time.

As it seems that Storable is not reentrant, this module also serialises calls to freeze and thaw between coroutines.

FUNCTIONS

$ref = thaw $pst

Retrieve an object from the given $pst, which must have been created with Coro::Storable::freeze or Storable::store_fd/Storable::store (sorry, but Storable uses incompatible formats for disk/mem objects).

This works by calling Coro::cede for every 4096 bytes read in.

$pst = freeze $ref

Freeze the given scalar into a Storable object. It uses the same format as Storable::nstore_fd (note the n).

This works by calling Coro::cede for every write that Storable issues. Unfortunately, Storable often makes many very small writes, so it is rather inefficient. But it does keep the latency low.

AUTHOR

 Marc Lehmann <schmorp@schmorp.de>
 http://home.schmorp.de/