RSS

Biblioteca para Thread Pool

17 mar

Tempos que não público nada, já algum tempo escrevi uma biblioteca em C
para piscinas de conexões,obtive dicas de amigos como Muzgo,
conto com a contribuição do Marcelo M. Fleury aka MarceloMF. se mais
gente poder ajudar seria legal, mesmo por que sou noob e preciso ter
uma visão de terceiros para evoluir….

Por que eu tive ideia de fazer ?
muito chato ficar fazendo malabarismo com mutex, queria algo tão simples
quanto o OpenMPI, algo que só apontando a função,número de threads a
usar e o número de vezes que os dados iriam rolar e pronto.
realmente tem me poupado horas a fio nos meus códigos com
programação concorrente.

Outra sou a favor do “tabula rasa” só faço abstração
quando tenho atitude a respeito(talvez por ter dislexia etc…),
ato de compartilhar não é por orgulho,vaidade e sim
pela sede de melhorar ,poderia ter deixado numa gaveta,
mas não !, deixo para todos só assim para ter esperança
de chegar a uma boa refatoração.

veja URL do PROJETO Aqui

Sem mais palavras “show me the code

$ wget http://tombpool.googlecode.com/files/tombpool02.tar.gz
$ tar zxvf tombpool02.tar.gz
$ cd tombpool02
$ mkdir pack; cd pack;
$ cmake ../; make; cd .. ; cp tombpool.h pack; cp test.c pack; cd pack
# cp libtombpool.so /lib
$ gcc -o test test.c -lpthread -ltombpool
$ ./test

olhando o código do test

/*
example how too use TombPool
 mkdir pack
 cmake ../; make; cd .. ; cp tombpool.h pack; cp test.c pack; cd pack
 sudo cp libtombpool.so /lib
 gcc -o test test.c -lpthread -ltombpool
 ./test

What this it ?
Just another thread pool simple api to work with double linked queue

Author:Antonio Costa aka " Cooler_ "
contact: c00f3r[at]gmail[dot]com
contributor: MarceloMF - Marcelo M. Fleury
email: marcelo.fleury[at]4linux[dot]com[dot]

    Copyright (C) 2012 tombpool authors,
    
    This file is part of tombpool
    
    tombpool is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    tombpool is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdio.h>
#include "tombpool.h"

void tarefa(int a)
{
 fprintf(stdout,"%d\n", a);
}


int main()
{
 int count=0;
// the pool struct	
 piscina* threadpool;
// init pool, to fill the pool, alloc heap ,4 thread per time            
 threadpool=Dig_TombPool(4);       

 while(count<10)
 {
// add task in pool and queue...
  Add_Corpse(threadpool, (void*)tarefa, (void*)count);
  count++;
 }	

// exec all and clear process, clear the heap,close semafores...
 Cover_TombPool(threadpool,10);
	
 return 0;
}

Por que tudo inglês ?
inglês é a lingua mais falada isso é clichê,e cai para nós
pessoal de portugal e brasileiro em geral tão nem ai para o
que ocorre em volta, já a 4 anos escrevo códigos OpenSource,
só escrevendo inglês para receber e-mails
de pessoas dando commit, dando dicas… mesmo meu inglês sendo fail 😉

você deve ter pensado por que estas funções
tem nome macabro
tipo “Add_Corpse()” ,” Cover_TombPool()
na verdade é um jargão ao tema de terror a imagem
do projeto também…
entomb

quando eu estiver de boa, vou fazer uma documentação
com doxygen se bem que para algo simples que não tem tanta função…
mas para ajudar a ficar sério ^^

Anúncios
 
1 comentário

Publicado por em março 17, 2012 em Linguagem C

 

Uma resposta para “Biblioteca para Thread Pool

  1. Marcos Júnior

    abril 5, 2012 at 12:41 pm

    Thak You!

     

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: