componente SdpoSerial en multihilo
Comenzado por
kheldar
, mar 29 2011 10:03
5 respuestas en este tema
#1
Escrito 29 marzo 2011 - 10:03
En primer lugar saludar a todos y dar las gracias por anticipado.
Necesito ayuda en un proyecto en el que estoy metido.
Estoy desarrollando una aplicación con Lazarus la cual por sus características es multihilo y en la cual utilizo el puerto serie.
Uso el componente SdpdSerial para cas comunicaciones serie y no tengo problema cuando lo uso en el cuerpo principal del problema, pero tengo la necesidad de trasladar su uso a uno de los hilos secundarios y es aquí donde me surge el problema: Cuando intento usar el componente en un hilo me da el problema … esternal:’SIGSEGV’…
POR FAVOR UN POCO DE AYUDA!!! Creo que he probado de todo y no consigo solucionarlo. Gracias
#2
Escrito 29 marzo 2011 - 10:09
Hola Kheldar y bienvenido a DA, sería bueno que publicaras parte del código donde realizas la acción de hilos y así determinar donde radica el problema.
De nuevo, bienvenido a Delphiaccess.
Saludos.
De nuevo, bienvenido a Delphiaccess.
Saludos.
#3
Escrito 29 marzo 2011 - 10:38
Comparto la opinión de enecumene, además creo sería conveniente saber el tipo de dispositivo; dado que en algunos necesitas esperar cierto tiempo antes de accesarlo y cosas por el estilo, me pasó con algunos modems.Hola Kheldar y bienvenido a DA, sería bueno que publicaras parte del código donde realizas la acción de hilos y así determinar donde radica el problema.
De nuevo, bienvenido a Delphiaccess.
Saludos.
Saludos
#4
Escrito 29 marzo 2011 - 12:39
kheldar Bienvenido al foro
Tienes un problema en tu programa, pero sin ver como lo haces es imposible poder decirte que esta mal. Danos un poco de informacion y veremos como ayudarte a resolver el problema.
Tienes un problema en tu programa, pero sin ver como lo haces es imposible poder decirte que esta mal. Danos un poco de informacion y veremos como ayudarte a resolver el problema.
#5
Escrito 29 marzo 2011 - 01:03
SIGSEGV un error muy comun al ejecutar Lazarus, las causas: un monton
En Ingles algunos datos sobre el.
En Ingles algunos datos sobre el.
#6
Escrito 30 marzo 2011 - 03:18
Personalmente veo poco sentido a acceder a un puerto serie en un entrono multihilo: de alguna forma tienes que asegurarte de que solo un hilo accedera simultaneamente al puerto, o el desastre está asegurado, y puedo imaginar que el propio componente dé por supuesto que está en el hilo principal y falle -o se niege a funcionar- en un hilo secundario.
Creo que lo correcto sería sacar el uso del puerto a una funcion en el hilo principal y que los otros hilos envien alli sus peticiones con las precuaciones normales en las comunicaciones entre hilos (como ocurre si usas un USB, el S.O. se ocupa de serializar las peticiones, pero aquí no tienes eso, accedes al puerto "a bajo nivel"). Asi puedes incluso "serializar" el que varios hilos quieran usar el puerto a la vez si te hiciese falta.
Creo que lo correcto sería sacar el uso del puerto a una funcion en el hilo principal y que los otros hilos envien alli sus peticiones con las precuaciones normales en las comunicaciones entre hilos (como ocurre si usas un USB, el S.O. se ocupa de serializar las peticiones, pero aquí no tienes eso, accedes al puerto "a bajo nivel"). Asi puedes incluso "serializar" el que varios hilos quieran usar el puerto a la vez si te hiciese falta.