Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-09-2006
Vauli Vauli is offline
Registrado
 
Registrado: sep 2006
Posts: 5
Poder: 0
Vauli Va por buen camino
no tan Urgente: Problema con LockList

Hola a todos,

Soy nuevo por aqui, y bueno tengo un pequeño problema,
Tengo una aplicacion que usa Indy 9 (TCP server), al conectarse los clientes los agrego a una variable (Clients) del tipo TThreadList. Hasta ahi todo bien.

El problema viene cuando desde un procedimiento cualquiera (no tiene que ver con los procedimientos del componente) trato de enviar datos a un cliente que elijo desde una lista que contiene la misma informacion que la variable Clients, al intentar hacer un

--->> With Clients.locklist Do
Try
...
Finally
Clients.unlocklist;
End;
se queda "colgado" sin mensajes de error justo donde señala la flecha.
Alguien sabe como se puede solucionar esto?


Saludos
Adrian

Última edición por Vauli fecha: 06-09-2006 a las 23:34:44.
Responder Con Cita
  #2  
Antiguo 06-09-2006
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Antes que nada, te quiero dar la bienvenida a los foros, e indicarte que todos las inquietudes de los foristas, tienen la misma prioridad, por lo que sugerimos no nombrar los hilos como "Urgente".


Cita:
Empezado por Vauli
...al conectarse los clientes los agrego a una variable (Clients) del tipo TThreadList...
El TIdTCPServer internamente maneja una lista similar con los clientes conectados, pudes acceder a ella mediante la propiedad Threads.


Cita:
Empezado por Vauli
...El problema viene cuando desde un procedimiento cualquiera (no tiene que ver con los procedimientos del componente) trato de enviar datos a un cliente que elijo desde una lista que contiene la misma informacion que la variable Clients, al intentar hacer un

--->> With Clients.locklist Do
Try
...
Finally
Clients.unlocklist;
End;
se queda "colgado" sin mensajes de error justo donde señala la flecha.
Alguien sabe como se puede solucionar esto?...
Seguramente el problema reside de que algún otro procedimiento ya haya bloqueado esta thread-sesitive critical section, y no la haya liberado aún. De ser así, tu procedimiento quedará bloqueado por tiempo indefinido hasta que el otro hilo cierre el bloqueo. Esa es la finalidad de las TThreadlist´s!

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 06-09-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Buen día.

En primer lugar, bienvenido al ClubDelphi. Te recomiendo una lectura de la guia de estilo. Allí verás por que el título de tu post no es adecuado.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #4  
Antiguo 06-09-2006
Vauli Vauli is offline
Registrado
 
Registrado: sep 2006
Posts: 5
Poder: 0
Vauli Va por buen camino
Gracias por la bienvenida, y disculpen por el titulo (me deje llevar por la emocion)
Pues la verdad es que estuve revisando a ver si habia algun otro hilo bloqueando el acceso pero no encontre nada... ¿hay alguna forma de ver si hay alguien accediendo a la lista?
Responder Con Cita
  #5  
Antiguo 06-09-2006
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por Vauli
¿hay alguna forma de ver si hay alguien accediendo a la lista?
Si!.. si haces un LockList y se queda esperando ser liberada, entonces esta bloqueada!

Si solo la bloquea tu código, probaría poner un breakpoint en esa línea
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #6  
Antiguo 07-09-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Añado:

Si varios hilos están accediendo a LockList al mismo tiempo, ¡La idea es esa! que esté bloqueada y el 2o, 3er, 4o, etc. hilos tengan que esperar a que quienes llegaron primero usen y liberen la lista.

Saludos.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #7  
Antiguo 07-09-2006
Vauli Vauli is offline
Registrado
 
Registrado: sep 2006
Posts: 5
Poder: 0
Vauli Va por buen camino
Gracias a Todos por su atencion
El problema fue resuelto, y si era cierto que tenia el Thread Bloqueado, encontrar al culpable me llevo mas tiempo... :P

Gracias nuevamente a todos

Slds
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema con SQL SERVER - Urgente jcarteagaf SQL 2 24-08-2006 20:40:57
Urgente Problema con Activex carlosmoralesm Providers 0 01-04-2005 00:53:43
urgente..please... problema con el Nº de lote oarc19 SQL 3 09-03-2004 16:40:07
Problema con qry de ADO...Urgente!! ssaavedra Conexión con bases de datos 4 07-08-2003 18:37:59


La franja horaria es GMT +2. Ahora son las 02:14:03.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi