PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Erreur SectionCritiqueFin URGENT
Erreur SectionCritiqueFin URGENT
Débuté par Frédéric BONNIN, 30 juin 2005 12:36 - Aucune réponse
Posté le 30 juin 2005 - 12:36
Bonjour,
j'ai un gros problème chez un client, j'ai une erreur qui se reproduit de plus en plus souvent d'ou cela vient il ?
C'est un serveur de socket developpé à partir du serveur de socket fourni en exemple par windev.

Merci par avance.

Ci joint l'erreur et à la fin le code.

Erreur à la ligne 19 du traitement Procédure locale MettreAJourTable.
Vous avez appelé la fonction SectionCritiqueFin.



**********************************************

Informations techniques

Projet : SRVSOC

Dump de l'erreur du module <WD90VM.DLL> <9.01At>.

- Appel WL :
Traitement de <GES_PRIN.PROCEDURE.MettreAJourTable>, ligne <19>, thread <0>
Fonction <SectionCritiqueFin>, n° de syntaxe <1>

- Niveau : erreur fatale (EL_FATAL)

- Code erreur : 0

- Code erreur WD55 : 0

- Pas de code d'erreur système

- Pas de message d'erreur système

- Pas de message d'erreur

- Infos de debug :
##(CXError)-Pas de définition d'erreur dans gstErrorDef pour l'identifiant <2910>##
Fonction (0,60)

- Infos attachées :
EIT_DATEHEURE : 28/06/2005 15:48:54
EIT_PILEWL :
Procédure locale MettreAJourTable (GES_PRIN.PROCEDURE.MettreAJourTable), ligne 19
Procédure locale GestionConnexion (GES_PRIN.PROCEDURE.GestionConnexion), ligne 11

- Pas d'identifiant dans le .err


////////////////////////////////////////////
CODE
////////////////////////////////////////////

PROCEDURE MettreAJourTable(sNomSocket,sNomThread,sIP)

nIndice est un entier


SectionCritiqueDébut("Gestion")

// On recherche si cette connexion est déjà référencé dans la table
nIndice = TableCherche(Table1.Thread,sNomThread)

// Nouvelle connexion ?
SI nIndice = -1 ALORS
// Nouvelle connexion
TableAjouteLigne(Table1,sIP,sNomThread,sNomSocket,HeureSys())
SINON
// Mise à jour de connexion
TableModifieLigne(Table1,nIndice,sIP,sNomThread,sNomSocket,HeureSys())
FIN
SectionCritiqueFin("Gestion")

***********************************************************************************************************************

PROCEDURE GestionConnexion(sNomConnexion)

sMessage est une chaîne
sNomThread est une chaîne = sNomConnexion
bModifTable est un booléen

sIp est une chaîne = SocketClientInfo(sNomConnexion,SocketAdresse)

// Lecture des messages
BOUCLE
MettreAJourTable(sNomConnexion,sNomThread,sIp)
bModifTable=Faux
SI gSTypConn = "PPC" ALORS
sMessage = UnicodeVersAnsi(SocketLit(sNomConnexion,Faux,10))
SINON
sMessage = SocketLit(sNomConnexion,Faux,10)
FIN
SELON ExtraitChaîne(sMessage,1,TAB)
CAS "XXX" :
// Sortie de l'utilisateur
bModifTable=Vrai
SORTIR

CAS "PSW" :
//ON ANLYSE LE LOGIN/MOT DE PASSE
bModifTable=Vrai
fPSWDemande(sMessage,sNomConnexion)

CAS "LST" :
//ON LANCE LA LISTE DES UTILISATEURS
bModifTable=Vrai
fLSTDemande(sMessage,sNomConnexion)

CAS "CLT" :
//LECTURE D'UN CLIENT
bModifTable=Vrai
fCLTDemande(sMessage,sNomConnexion)

CAS "S10" :
bModifTable=Vrai
fS10Demande(sMessage,sNomConnexion)

CAS "S11" :
bModifTable=Vrai
fS11Demande(sMessage,sNomConnexion)

CAS "S12" :
bModifTable=Vrai
fS12Demande(sMessage,sNomConnexion)

CAS "P10" :
bModifTable=Vrai
fP10Demande(sMessage,sNomConnexion)

CAS "P11" :
bModifTable=Vrai
fP11Demande(sMessage,sNomConnexion)

CAS "P12" :
bModifTable=Vrai
fP12Demande(sMessage,sNomConnexion)

CAS "T10" :
bModifTable=Vrai
fT10Demande(sMessage,sNomConnexion)

CAS "T11" :
bModifTable=Vrai
fT11Demande(sMessage,sNomConnexion)

CAS "T12" :
bModifTable=Vrai
fT12Demande(sMessage,sNomConnexion)

CAS "T13" :
bModifTable=Vrai
fT13Demande(sMessage,sNomConnexion)

CAS "T14" :
bModifTable=Vrai
fT14Demande(sMessage,sNomConnexion)

CAS "401" :
bModifTable=Vrai
fC10Demande(sMessage,sNomConnexion)

CAS "402" :
bModifTable=Vrai
fC11Demande(sMessage,sNomConnexion)

CAS "403" :
bModifTable=Vrai
fC12Demande(sMessage,sNomConnexion)

CAS "404" :
bModifTable=Vrai
fC13Demande(sMessage,sNomConnexion)

CAS "405" :
bModifTable=Vrai
fC14Demande(sMessage,sNomConnexion)

CAS "406" :
bModifTable=Vrai
fC15Demande(sMessage,sNomConnexion)

CAS "407" :
bModifTable=Vrai
fC16Demande(sMessage,sNomConnexion)

CAS "408" :
bModifTable=Vrai
fC17Demande(sMessage,sNomConnexion)

CAS "" :
// Ce n'est pas une lecture bloquante, on retourne dans la boucle
Multitâche(-1)

AUTRES CAS :
// Message à poster
//GestionMessage(sIP,sMessage)
FIN


FIN

// Fermeture de la socket
SI gBDebugage ALORS Trace("Fermeture de la socket ="+sNomConnexion)
SocketFerme(sNomConnexion)