---
name: "ZeroMQ::Context"
section: "3pm"
platform: "linux"
package: "libzeromq-perl"
version: "0.23-1+b2"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/ZeroMQ::Context"
---

# ZeroMQ::Context(3pm)

A 0MQ Context object

## NAME

ZeroMQ::Context - A 0MQ Context object

## SYNOPSIS

```
  use ZeroMQ qw/:all/;

  my $cxt = ZeroMQ::Context->new;
  my $sock = ZeroMQ::Socket->new($cxt, ZMQ_REP);
```

## DESCRIPTION

Before opening any 0MQ Sockets, the caller must initialise a 0MQ context.

## METHODS

### new($nthreads)

Creates a new `"ZeroMQ::Context"`.

Optional arguments: The number of io threads to use. Defaults to 1.

### *term()*

Terminates the current context. You \*RARELY\* need to call this yourself, so don't do it unless you know what you're doing.

### socket($type)

Short hand for ZeroMQ::Socket::new.

### ctxt

Return the underlying ZeroMQ::Raw::Context object

## CAVEATS

While in principle, `"ZeroMQ::Context"` objects are thread-safe, they are currently not cloned when a new Perl ithread is spawned. The variables in the new thread that contained the context in the parent thread will be a scalar reference to `"undef"` in the new thread. This could be fixed with better control over the destructor calls.

## SEE ALSO

ZeroMQ, ZeroMQ::Socket

\<http://zeromq.org\>

ExtUtils::XSpp, Module::Build::WithXSpp

## AUTHOR

Daisuke Maki \<daisuke@endeworks.jp\>

Steffen Mueller, \<smueller@cpan.org\>

## COPYRIGHT AND LICENSE

The ZeroMQ module is

Copyright (C) 2010 by Daisuke Maki

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.0 or, at your option, any later version of Perl 5 you may have available.
