Dados gerais

Interface: Thread
Arquivos: lib/thread.h
Última atualização: 10/02/2002
Autor: Luiz Henrique Shigunov
Informações

Descrição
Funções
  • 0x03 - AllocTSD - Aloca uma TSD
  • 0x00 - Create - Cria uma linha de execução
  • 0x01 - Destroy - Destrói uma linha de execução
  • 0x04 - FreeTSD - Libera uma TSD
  • 0x02 - GetID - Obtém o identificador da linha de execução
  • 0x05 - GetTSD - Obtém o valor duma TSD
  • 0x06 - SetTSD - Define o valor duma TSD
  • Descrição

    Esta página descreve a interface do usuário Thread.

    Todo programa que utilizar mais de uma linha de execução deve usar esta interface para criar e destruir elas.

    Programas normalmente precisam de variáveis globais ou variáveis static que têm valores diferentes em diferentes linhas de execução. Como linhas de execução compartilham um mesmo espaço de memória, isso não é possível com variáveis comuns. Variáveis específicas duma linha de execução (thread-specific data - TSD) é a solução.

    Cada linha de execução tem uma área privada de memória. Essa área é indexada pelas chaves TSD. Essa área associa valores de tipo void * com as chaves TSD. As chaves TSD são comuns à todas as linhas de execução, mas o valor associado com uma chave TSD pode ser diferente em cada linha de execução.

    Quando uma linha de execução é criada todas as chaves TSD têm NULL.

    0x03 - AllocTSD

    Sintaxe

    int AllocTSD(unsigned int *key, void (*destructor)(void*));

    Descrição

    Esta função aloca uma variável específica duma linha de execução (thread specific data - TSD).

    Existe um limite de chaves disponíveis. O valor inicial duma TSD é NULL para todas as linhas de execução.

    destructor ainda não é utilizado.

    Em caso de sucesso, key vai conter a chave para a TSD.

    Valor de retorno

    0x00 - Create

    Sintaxe

    int Create(int (*function)(void*), void *arg, int prop, Thread **id);

    Descrição

    Esta função cria uma linha de execução com as propriedades prop.

    A linha de execução vai começar a executar a função function com o argumento arg.

    prop deve ser 0 ou o somatório de:

    Em caso de sucesso, id vai conter o identificador da linha de execução criada.

    Valor de retorno

    0x01 - Destroy

    Sintaxe

    int Destroy(Thread *id);

    Descrição

    Esta função destrói a linha de execução id.

    Se id for NULL, a linha de execução corrente é destruida.

    Valor de retorno

    0x04 - FreeTSD

    Sintaxe

    int FreeTSD(unsigned int key);

    Descrição

    Esta função libera a variável específica duma linha de execução (thread specific data - TSD) key.

    Valor de retorno

    0x02 - GetID

    Sintaxe

    Thread *GetID(void);

    Descrição

    Esta função obtém o identificador da linha de execução que chama esta função.

    Valor de retorno

    O identificador da linha de execução

    0x05 - GetTSD

    Sintaxe

    void *GetTSD(unsigned int key);

    Descrição

    Esta função obtém o valor da TSD key na linha de execução que chama esta função.

    Valor de retorno

    O valor da TSD.

    0x06 - SetTSD

    Sintaxe

    int SetTSD(unsigned int key, void *value);

    Descrição

    Esta função define o valor da TSD key para value na linha de execução que chama esta função.

    Valor de retorno