예제 #1
0
static gboolean
ufo_cpu_node_equal_real (UfoNode *n1,
                         UfoNode *n2)
{
    UfoCpuNodePrivate *priv1;
    UfoCpuNodePrivate *priv2;

#ifndef __APPLE__
    const gsize MAX_CPUS = MIN (16, CPU_SETSIZE);
#else
    const gsize MAX_CPUS = 16;
#endif

    g_return_val_if_fail (UFO_IS_CPU_NODE (n1) && UFO_IS_CPU_NODE (n2), FALSE);
    priv1 = UFO_CPU_NODE_GET_PRIVATE (n1);
    priv2 = UFO_CPU_NODE_GET_PRIVATE (n2);

#ifndef __APPLE__
    for (gsize i = 0; i < MAX_CPUS; i++) {
        if (CPU_ISSET (i, priv1->mask) != CPU_ISSET (i, priv2->mask))
            return FALSE;
    }
#endif

    return TRUE;
}
예제 #2
0
static void
ufo_cpu_node_init (UfoCpuNode *self)
{
    UfoCpuNodePrivate *priv;
    self->priv = priv = UFO_CPU_NODE_GET_PRIVATE (self);
    priv->mask = NULL;
}
예제 #3
0
static void
ufo_cpu_node_finalize (GObject *object)
{
    UfoCpuNodePrivate *priv;

    priv = UFO_CPU_NODE_GET_PRIVATE (object);

    if (priv->mask) {
        g_free (priv->mask);
        priv->mask = NULL;
    }

    G_OBJECT_CLASS (ufo_cpu_node_parent_class)->finalize (object);
}