libthread-tie-perl - alternative separate thread implementation of shared variables

Property Value
Distribution Debian 10 (Buster)
Repository Debian Main i386
Package filename libthread-tie-perl_0.13-1_all.deb
Package name libthread-tie-perl
Package version 0.13
Package release 1
Package architecture all
Package type deb
Category devel::lang:perl devel::library implemented-in::perl perl
License -
Maintainer Debian Perl Group <>
Download size 31.22 KB
Installed size 108.00 KB
The standard shared variable scheme used by Perl, is based on tie-ing the
variable to some very special dark magic. This dark magic ensures that shared
variables, which are copied just as any other variable when a thread is
started, update values in all of the threads where they exist as soon as the
value of a shared variable is changed.
The Thread::Tie module is a proof-of-concept implementation of another approach
to shared variables. Instead of having shared variables exist in all the
threads from which they are accessible, shared variable exist as "normal",
unshared variables in a separate thread. Only a tied object exists in each
thread from which the shared variable is accessible.
Through the use of a client-server model, any thread can fetch and/or update
variables living in that thread. This client-server functionality is hidden
under the hood of tie(). So you could say that one dark magic (the current
shared variables implementation) is replaced by another dark magic.
The Thread::Tie approach has the following advantages:
* Memory usage - This implementation circumvents the memory leak that
currently (threads::shared version 0.90) plagues any shared array or shared
hash access.
* Tieing shared variables - Because the current implementation uses tie-ing,
you can not tie a shared variable. The same applies for this implementation
you might say. However, it is possible to specify a non-standard tie
implementation for use within the thread. So with this implementation you
can tie() a shared variable. So you could tie a shared hash to a DBM file à
la dbmopen() with this module.
Of course there are disadvantages to this approach:
* Pure Perl implementation - This module is currently a pure Perl
implementation. This is ok for a proof of concept, but may need re-
implementation in pure XS or in Inline::C for production use.
* Tradeoff between cpu and memory - This implementation currently uses (much)
more cpu than the standard shared variables implementation. Whether this
would still be true when re-implemented in XS or Inline::C, remains to be


Package Version Architecture Repository
libthread-tie-perl_0.13-1_all.deb 0.13 all Debian Main
libthread-tie-perl - - -


Name Value
libload-perl -
libthread-serialize-perl -
perl -


Type URL
Binary Package libthread-tie-perl_0.13-1_all.deb
Source Package libthread-tie-perl

Install Howto

  1. Update the package index:
    # sudo apt-get update
  2. Install libthread-tie-perl deb package:
    # sudo apt-get install libthread-tie-perl




2015-03-01 - Christopher Hoskin <>
libthread-tie-perl (0.13-1) unstable; urgency=low
* Initial Release. Closes: #779481

See Also

Package Description
libthreadweaver4_4.14.38-3_i386.deb ThreadWeaver Library for the KDE Platform
libthrift-0.11.0_0.11.0-4_i386.deb Thrift C++ library
libthrift-c-glib-dev_0.11.0-4_i386.deb Thrift glib library (development headers)
libthrift-c-glib0_0.11.0-4_i386.deb Thrift glib library
libthrift-dev_0.11.0-4_i386.deb Thrift C++ library (development headers)
libthrift-perl_0.11.0-4_all.deb Perl language support for Thrift
libthrowable-perl_0.200013-1_all.deb role for classes that can be thrown
libthunarx-3-0_1.8.4-1_i386.deb extension library for thunar
libthunarx-3-dev_1.8.4-1_i386.deb Development files for libthunarx
libticables-dev_1.3.5+dfsg-3_i386.deb Texas Instruments link cables library [development files]
libticables2-7_1.3.5+dfsg-3_i386.deb Texas Instruments link cables library
libticalcs-dev_1.1.9+dfsg-2_i386.deb Texas Instruments calculator communication library [development files]
libticalcs2-12_1.1.9+dfsg-2_i386.deb Texas Instruments calculator communication library
libticcutils-dev_0.20-1_i386.deb utility functions used in the context of Natural Language Processing (headers)
libticcutils5_0.20-1_i386.deb utility functions used in the context of Natural Language Processing (library)