table.ssort

Страницы: 1
RSS
table.ssort, зависает терминал при выполнении table.ssort в main
 
Демонстрационный скрипт:
Код
local AllTrades = {}
function main()
  ID = AllocTable()
  AddColumn(ID, 1, '1', true, QTABLE_INT_TYPE, 20)
  CreateWindow(ID)
  row = InsertRow(ID, -1)

  while not stoped do
    if #AllTrades ~= 0 then
      local trade_num = table.sremove(AllTrades, 1).trade_num
      table.ssort({0, 0}, function()
        SetCell(ID, row, 1, ''..trade_num)
        return true
      end)
   else sleep(1) end
  end  
end

function OnAllTrade(alltrade)
  table.sinsert(AllTrades, alltrade)
end

Через непродолжительное время терминал вешается.
Зависание происходит при выполнении инструкции SetCell в main.
 
Похоже, SetCell ждёт код возврата и не может его получить, поскольку основной поток "заморожен"
 
Цитата
Старатель написал:
Демонстрационный скрипт:
Код
   local  AllTrades  =  {}
 function   main ()
  ID  =   AllocTable ()
   AddColumn (ID,  1 ,  '1' ,  true , QTABLE_INT_TYPE,  20 )
   CreateWindow (ID)
  row  =   InsertRow (ID,  -  1 )

   while   not  stoped  do 
     if   # AllTrades ~ =   0   then 
       local  trade_num  =   table.sremove (AllTrades,  1 ).trade_num
       table.ssort ({ 0 ,  0 },  function ()
         SetCell (ID, row,  1 ,  ''  .. trade_num)
         return   true 
       end )
    else   sleep ( 1 )  end 
   end   
 end 

 function   OnAllTrade (alltrade)
   table.sinsert (AllTrades, alltrade)
 end   

Через непродолжительное время терминал вешается.
Зависание происходит при выполнении инструкции SetCell в main.
Здравствуйте!

Ваше обращение получено, проблема изучается. Постараемся в ближайшее время дать ответ.
Страницы: 1
Читают тему (гостей: 1)
Наверх