File Coverage

xs/Context.xs
Criterion Covered Total %
statement 22 24 91.6
branch 5 184 2.7
condition n/a
subroutine n/a
pod n/a
total 27 208 12.9


line stmt bran cond sub pod time code
1             MODULE = ZMQ::Raw PACKAGE = ZMQ::Raw::Context
2              
3             SV *
4             new (class)
5             SV *class
6              
7             PREINIT:
8             int i;
9 9           zmq_raw_context *ctx = NULL;
10              
11             CODE:
12 9           Newxz (ctx, 1, zmq_raw_context);
13 9           ctx->mutex = zmq_raw_mutex_create();
14 9           ctx->context = zmq_ctx_new();
15 9           ctx->reference_count = 1;
16 9           ctx->timers = NULL;
17              
18 9           ZMQ_NEW_REFCOUNTED_OBJ (RETVAL, "ZMQ::Raw::Context",
19             ctx, zmq_raw_ctx_dup);
20              
21             OUTPUT: RETVAL
22              
23             void
24             set (self, option, value)
25             SV *self
26             int option
27             int value
28              
29             PREINIT:
30             int rc;
31             zmq_raw_context *ctx;
32              
33             CODE:
34 1           ctx = ZMQ_SV_TO_PTR (Context, self);
35 1           rc = zmq_ctx_set (ctx->context, option, value);
36 1 50         zmq_raw_check_error (rc);
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
37              
38             void
39             shutdown (self)
40             SV *self
41              
42             PREINIT:
43             int rc;
44             zmq_raw_context *ctx;
45              
46             CODE:
47 1           ctx = ZMQ_SV_TO_PTR (Context, self);
48 1           rc = zmq_ctx_shutdown (ctx->context);
49 1 50         zmq_raw_check_error (rc);
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
50              
51             void
52             DESTROY(self)
53             SV *self
54              
55             PREINIT:
56             zmq_raw_context *ctx;
57              
58             CODE:
59 9           ctx = ZMQ_SV_TO_PTR (Context, self);
60              
61 9           zmq_raw_mutex_lock (ctx->mutex);
62 9 50         if (--ctx->reference_count > 0)
63             {
64 0           zmq_raw_mutex_unlock (ctx->mutex);
65 0           XSRETURN (0);
66             }
67              
68 9 100         if (ctx->timers)
69 3           zmq_raw_timers_destroy (ctx->timers);
70              
71 9           zmq_ctx_term (ctx->context);
72 9           zmq_raw_mutex_unlock (ctx->mutex);
73 9           zmq_raw_mutex_destroy (ctx->mutex);
74 9           Safefree (ctx);
75