MultiThread no Harbour
Moderador: Moderadores
MultiThread no Harbour
Amigos,
Implementei o uso de uma função do meu sistema usando Threads, e com Harbour vai tudo bem, enquanto o sistema está sendo executado. O problema é que ao finalizar o sistema, mesmo que a Thread já tenha completado seu ciclo de processamento, sempre ocorre um erro de execução do windows (APPCRASH).
Algum de vocês já passou por isso ?
Implementei o uso de uma função do meu sistema usando Threads, e com Harbour vai tudo bem, enquanto o sistema está sendo executado. O problema é que ao finalizar o sistema, mesmo que a Thread já tenha completado seu ciclo de processamento, sempre ocorre um erro de execução do windows (APPCRASH).
Algum de vocês já passou por isso ?
MultiThread no Harbour
Yugi,
Já tinha visto esse post, e não vi nada nele diferente do que estou fazendo... A função executada na Thread está funcionando normalmente, aliás como todo o resto no sistema. O problema só aparece quando tento finalizar o sistema, aparece uma mensagem de que o sistema não está respondendo e logo em seguida um APPCRASH...
Já monitorei e posso afirmar que todas as Thread iniciadas tiveram seus processamentos concluídos.
Já tinha visto esse post, e não vi nada nele diferente do que estou fazendo... A função executada na Thread está funcionando normalmente, aliás como todo o resto no sistema. O problema só aparece quando tento finalizar o sistema, aparece uma mensagem de que o sistema não está respondendo e logo em seguida um APPCRASH...
Já monitorei e posso afirmar que todas as Thread iniciadas tiveram seus processamentos concluídos.
MultiThread no Harbour
Prezado Vilian,
Sem ter um código para analisar não é possível te ajudar diretamente.
Verifique os códigos oficiais de exemplos de Threads (pode ser que tenha algo útil): https://github.com/harbour/core/tree/master/tests/mt
Após o término das threads tente limpar o conteúdo dos ponteiros através das funções __mvXRelease ou __mvRelease Veja a documentação em: http://www.elektrosoft.it/tutorials/Har ... -guide.htm
att,
Yugi
Sem ter um código para analisar não é possível te ajudar diretamente.
Verifique os códigos oficiais de exemplos de Threads (pode ser que tenha algo útil): https://github.com/harbour/core/tree/master/tests/mt
Após o término das threads tente limpar o conteúdo dos ponteiros através das funções __mvXRelease ou __mvRelease Veja a documentação em: http://www.elektrosoft.it/tutorials/Har ... -guide.htm
att,
Yugi
MultiThread no Harbour
Obrigado Yuri,
Vc tem razão... Vou tentar reproduzir o problema num código-fonte menor e posto aqui.
Vc tem razão... Vou tentar reproduzir o problema num código-fonte menor e posto aqui.
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
MultiThread no Harbour
Olá!
Seja bem-vindo Vilian.
O Quintas fez algumas experiências que estão no tópico multijanelas, multithread e talvez possam contribuir de alguma forma.
Verifique se você está usando a versão mais atualizada do Harbour. Pode estar usando alguma versão com bug...
Seja bem-vindo Vilian.
O Quintas fez algumas experiências que estão no tópico multijanelas, multithread e talvez possam contribuir de alguma forma.
Verifique se você está usando a versão mais atualizada do Harbour. Pode estar usando alguma versão com bug...
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
MultiThread no Harbour
Olá Pessoal,
Já vi este problema algumas vezes mas em máquinas que tem jogos instalados. Com Harbour não. Você poderia colocar a tela de eventos do erro? E também qual Windows você está usando? Quando dá o erro, você chegou a notar se o módulo de falhas é sempre o mesmo?
Já vi este problema algumas vezes mas em máquinas que tem jogos instalados. Com Harbour não. Você poderia colocar a tela de eventos do erro? E também qual Windows você está usando? Quando dá o erro, você chegou a notar se o módulo de falhas é sempre o mesmo?
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
MultiThread no Harbour
Utilizo Windows 7 64 bits.
A versão do Harbour é a 3.1 Rev 17222 que baixei do harbour-projet.org
A versão do Harbour é a 3.1 Rev 17222 que baixei do harbour-projet.org
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
MultiThread no Harbour
Caro Vilian,
Esse problema não será solucionado se você não identificar o módulo da falha. Esse tipo de erro em 98% das vezes está relacionado a uma dll corrompida, na maioria das vezes por que ela foi corrompida num ataque de malware e defesa do antivirus. Normalmente se relacionado a dll basta substituir a dll. Em alguns casos isso só é possível no modo de segurança, outros com disco de boot, e a maioria das vezes de forma simples.
Isto não está relacionado ao Harbour, mas sim ao sistema operacional. Fica difícil tentar ajudar sem ver a tela de eventos do Windows para entender quem está provocando a falha.
Esse problema não será solucionado se você não identificar o módulo da falha. Esse tipo de erro em 98% das vezes está relacionado a uma dll corrompida, na maioria das vezes por que ela foi corrompida num ataque de malware e defesa do antivirus. Normalmente se relacionado a dll basta substituir a dll. Em alguns casos isso só é possível no modo de segurança, outros com disco de boot, e a maioria das vezes de forma simples.
Isto não está relacionado ao Harbour, mas sim ao sistema operacional. Fica difícil tentar ajudar sem ver a tela de eventos do Windows para entender quem está provocando a falha.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
MultiThread no Harbour
Jairo,
Realmente acho que seja algo no meu ambiente mesmo, mas não consegui identificar o quê...Utilizei o código abaixo, que peguei no forum internacional e mesmo nele, a situação se repete, ou seja, consigo executar normalmente, mas ao finalizar o programa aparece a mensagem abaixo:

Que versão do Harbour vc esta usando ?
Na linkedição mudei apenas as libs hbvmmt.lib e cw32mt.lib, vc mudou mais alguma ?
Existe alguma configuração adicional pra fazer ?
Quando vc fecha o aplicativo tem que executar alguma função ?
---
Sds,
Vilian Arraes
Belém - Pa
Realmente acho que seja algo no meu ambiente mesmo, mas não consegui identificar o quê...Utilizei o código abaixo, que peguei no forum internacional e mesmo nele, a situação se repete, ou seja, consigo executar normalmente, mas ao finalizar o programa aparece a mensagem abaixo:

Código: Selecionar todos
#include "Fivewin.ch"
PROC Main()
LOCAL aObj := Array(1000000)
LOCAL oDlg, oButton
PUBLIC nDestroyed := 0
DEFINE DIALOG oDlg SIZE 400, 500
@ 11, 0 BUTTON oButton PROMPT "Start" SIZE 80, 8 ACTION Button1_Click(oDlg)
ACTIVATE DIALOG oDlg CENTER
RETURN
PROC Button1_Click(oDlg)
LOCAL n := 0
LOCAL pMutex := HB_MutexCreate()
FOR n :=1 TO 10
StartThread( "MyFuncForThreads", pMutex, oDlg, n )
NEXT
WaitForThreads()
RETURN
PROC MyFuncForThreads(pMutex,oDlg,n)
LOCAL cTID
HB_MutexLock(pMutex)
oDlg:Say(n,0,"Thread ID" + lTrim(Str(GetThreadID())) + " system id: " + lTrim(Str(GetSystemThreadID())))
HB_MutexUnlock(pMutex)
RETURN
Na linkedição mudei apenas as libs hbvmmt.lib e cw32mt.lib, vc mudou mais alguma ?
Existe alguma configuração adicional pra fazer ?
Quando vc fecha o aplicativo tem que executar alguma função ?
---
Sds,
Vilian Arraes
Belém - Pa
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
MultiThread no Harbour
Vilian, o mais importante na janela de eventos deu pra ver, neste caso, o código de exceção. Este código significa que seu Seven está achando que seu aplicativo é malicioso. Isso é muito chato.
Para baixar outra versão use: Harbour 3.0.0 ou Harbour 3.2.0
Veja o que acontece.
Sim. Neste caso no sistema de proteção do windows. Porém, antes de sugerir exceção no módulo de proteção, tente compilar com o Harbour 3.0.0 ou 3.2.0. Caso não resolva passo como alterar o módulo de proteção para seu aplicativo, mas é desaconselhável, ou seja, o erro cessa, mas não é uma solução. Você poderá voltar a ter esse problema trocando o nome do aplicativo por exemplo.vilian escreveu:Existe alguma configuração adicional pra fazer ?
Para baixar outra versão use: Harbour 3.0.0 ou Harbour 3.2.0
Veja o que acontece.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
MultiThread no Harbour
Pois é... Bom, descartado bug em dll, vamos fazer uma última tentativa antes de passar os procedimentos de alteração do módulo de segurança: baixe o ADWCLEANER.EXE (baixaki, superdownloads, etc) e execute em seu computador. Faça isso, porque existe a possibilidade sim deste problema ser causado por alguma praga.
Se ainda assim persistir, então na minha opinião somente mesmo neutralizando a ação do módulo de segurança para seu aplicativo.
Se ainda assim persistir, então na minha opinião somente mesmo neutralizando a ação do módulo de segurança para seu aplicativo.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
MultiThread no Harbour
Jairo,
Obrigado pela sua atenção. Tenho muito cuidado com relação a essas "pragas" e além do antivirus, faço manutenções periódicas no meu micro com o CCleaner, acho que essa podemos descartar.
Mexer no módulo de segurança do windows é algo que não pretendo fazer, simplemente por que é inviável pra mim fazer isso nos clientes, e em alguns realmente não vou poder mexer nisso.
Espalhei questionamentos acerca disso em vários forums pra ver se identifico o que está provocando o problema, enquanto não encontro solução, vou deixar Multithreads de lado.
---
Sds,
Vilian Arraes
Belém - Pa
Obrigado pela sua atenção. Tenho muito cuidado com relação a essas "pragas" e além do antivirus, faço manutenções periódicas no meu micro com o CCleaner, acho que essa podemos descartar.
Mexer no módulo de segurança do windows é algo que não pretendo fazer, simplemente por que é inviável pra mim fazer isso nos clientes, e em alguns realmente não vou poder mexer nisso.
Espalhei questionamentos acerca disso em vários forums pra ver se identifico o que está provocando o problema, enquanto não encontro solução, vou deixar Multithreads de lado.
---
Sds,
Vilian Arraes
Belém - Pa
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
MultiThread no Harbour
Muito bom! Não esqueça de reportar aqui também ao encontrar uma solução. Valeu.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)

