Giter Club home page Giter Club logo

ipc-shm-simple's Introduction

INTRO:

This is IPC::Shm::Simple, a PERL module that provides storage of simple data
in SysV shared memory segments. Simple means string or numeric.

It is a derivative of IPC::ShareLite by Maurice Aubrey.


COPYRIGHT / LICENSE:

Copyright (C) 2005,2014 Kevin Cody-Little <[email protected]>
Copyright (C) 1998-2002 Maurice Aubrey <[email protected]>

This software may be modified and/or redistributed under the terms of
either the Artistic License or the GNU General Public License, at the
discretion of the modifier/redistributor. These are the same terms
under which PERL itself is distributed.


MAJOR CHANGES FROM ShareLite:

Actual shared memory segment and semaphore operations are in separate code
modules from the API implementation.

The monolithic new() call is gone, replaced by create(),  attach(), remove().

The readlock, writelock, and unlock functions mean the calling class doesn't
have to import any constants. Of course, the old way still works.

There are new shmat() and shmid() calls for effectively working with unkeyed
shared memory segments.

There is a new Descriptor structure that holds shared object data in the
top shared memory segment, so no space is wasted in the chunk segments.

The semaphore doesn't use the ipckey at all anymore.

Chunk segments can now be a different size than the top segment.

The PERL layer provides defeatable read-caching and write verification.

The PERL layer also caches instances, to keep the kernel shm table limited
to one connection per share object per process.


API DOCUMENTATION:

It works through an object oriented interface. See the POD's and test.pl.


DEPENDENCIES:

	Test::More
		Test::Harness
		Storable

	Class::Attrib
		Class::Multi


PORTABILITY:

NOTE: most of this section is old and unverified with current sources.

It has compiled and tested cleanly on:
        x86     - Linux 2.6 Gentoo 2004.0
        x86     - Linux 2.6 Fedora FC2
        x86     - Linux 2.4 Debian 2.2
        AMD     - Linux 2.6 Fedora Core 3
        PPCG4   - Mac OS X 10.3

It has compiled and tested with warnings on:
        x86     - OpenBSD 3.4 - possible Test::Harness bug
        Alpha   - Linux 2.2 Debian 3.0 - va_list warnings

It has compiled but not tested on:
        x86     - FreeBSD 4.8 - no Test::More
        x86     - NetBSD 1.6.1 - no Test::More

It will not compile on Solaris due to the absence of LOCK_? definitions.

All test servers except Gentoo and Mac were provided by SourceForge,
and had a variety of PERL versions ranging from 5.004 to 5.8.5.

Some required manual installation of:

        Test::Harness
        Test::More
        Storable

There are two dependencies whose list entries have yet to be approved:
        Class::Multi
        Class::Attrib


GETTING THE SOFTWARE:

They can be downloaded from my CPAN directory, or from github.com.

IPC::Shm::Simple can be checked out by:

git clone https://github.com/kcodyjr/ipcshm-simple

Class::Multi can be checked out by:

git clone https://github.com/kcodyjr/class-multi

Class::Attrib can be checked out by:

git clone https://github.com/kcodyjr/class-attrib


AUTHOR CONTACT INFO:

Bug reports, questions, and flames should be sent to:

Kevin Cody-Little <[email protected]>

ipc-shm-simple's People

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.