void
sp_writer_free_block (ShmBlock * block)
{
  shm_alloc_space_block_dec (block->ablock);
  sp_shm_area_dec (block->pipe, block->area);
  sp_dec (block->pipe);
  spalloc_free (ShmBlock, block);
}
void
sp_close (ShmPipe * self)
{
  if (self->main_socket >= 0)
    close (self->main_socket);

  if (self->socket_path) {
    unlink (self->socket_path);
    free (self->socket_path);
  }

  while (self->clients)
    sp_writer_close_client (self, self->clients);

  sp_dec (self);
}
Beispiel #3
0
void
sp_writer_close (ShmPipe * self, sp_buffer_free_callback callback,
    void *user_data)
{
  if (self->main_socket >= 0) {
    shutdown (self->main_socket, SHUT_RDWR);
    close (self->main_socket);
  }

  if (self->socket_path) {
    unlink (self->socket_path);
    free (self->socket_path);
  }

  while (self->clients)
    sp_writer_close_client (self, self->clients, callback, user_data);

  sp_dec (self);
}