All pastes #796926 Raw Edit

Lukaso

public text v1 · immutable
#796926 ·published 2007-11-25 16:11 UTC
rendered paste body
Global NewList SendNetworkQueue.s()
Global bThreadSendNetworkQueue.b = #True
Define lMutexSendNetworkQueue.l = CreateMutex()

Procedure ThreadStartSendNetworkQueue()
  
  Shared lMutexSendNetworkQueue
  
  Repeat
    
    While CountList(SendNetworkQueue())
      
      Delay(2000)
      
      LockMutex(lMutexSendNetworkQueue)
      
      FirstElement(SendNetworkQueue()) 
      
      If Len(SendNetworkQueue()) > 0
        
        Debug "Out: " + SendNetworkQueue()
        
      EndIf
      
      DeleteElement(SendNetworkQueue())
      
      UnlockMutex(lMutexSendNetworkQueue)
      
      Delay(2000)
      
    Wend
    
    Delay(10)
    
  Until bThreadSendNetworkQueue = #False
  
EndProcedure

Procedure ThreadEndSendNetworkQueue()
  
  bThreadSendNetworkQueue = #False
  
EndProcedure

Procedure ThreadAddNetworkString(sString.s)
  
  Shared lMutexSendNetworkQueue
  
  LockMutex(lMutexSendNetworkQueue)
  LastElement(SendNetworkQueue())
  AddElement(SendNetworkQueue())
  SendNetworkQueue() = sString
  UnlockMutex(lMutexSendNetworkQueue)
  
EndProcedure

CreateThread(@ThreadStartSendNetworkQueue(), #Null)

Debug "Belade Stack"

Repeat
  
  Define sString.s = Str(Random(1000000))
  
  ThreadAddNetworkString(sString)
  Debug "Add: " + sString
  
  Delay(100)
  
Until Random(8) = 1

Debug "Stack Beladen Beendet"

Repeat : ForEver