LINUX.ORG.RU

Ответ на: комментарий от anonymous

Ой, не дописал. В общем, я хотел спросить про какие-то штуки вроде мм... деконструктора? как-то так.

anonymous
()
Ответ на: комментарий от Pavval

Блин, неужели тебя реально так задело тредом о сплюс-сплюс? По-моему весело получилось, чего ты пристаёшь?

nanoolinux ★★★★
() автор топика
Ответ на: комментарий от nanoolinux

Меня не задело, мне всё так же скучно. В действительности ты со своим «РАК» и без годного объяснения был весьма уныл. Не найти, чем наехать на плюсы - это надо уметь.

Pavval ★★★★★
()
Ответ на: комментарий от Pavval

О господи, тебя в гугле забанили? Тысячи страниц уже написано его недостатках. Мне википедию цитировать?)

nanoolinux ★★★★
() автор топика

Вообще, можно написать как-то так:

loop({_Type, Device}) -> 
  receive
    {tcp, Device, Data} -> 
       %%
    {Device, {data, Data}} -> 
       %%
  end.

Но имхо это фатально кривая идея. Я бы запилил два разных цикла, а то и два принципиально разных актора для этого, как-то так:

tcp_loop({tcp, Socket} = State) ->
  receive 
    {tcp, Socket, Data} -> 
      Smth = handle_packet(Data, State),
      tcp_loop(State);
  .....
  end.

port_loop({port, Port} = State) ->
  receive 
    {tcp, Socket, Data} -> 
      Smth = handle_packet(Data, State),
      port_loop(State);
  .....
  end.

handle_packet(...) -> ok

Ты же не хочешь одним актором поочередно обрабатывать порт и сокет, ты же не упоротый, да?

nwalker
()
Ответ на: комментарий от nwalker

Да нет, не собирался бы, но автор до меня именно так и сделал. На счёт степени его упоротости ничего не скажу.

nanoolinux ★★★★
() автор топика
Ответ на: комментарий от nanoolinux

а они у него берутся из пула или создаются по необходимости? если из пула - это еще хоть какое-то объяснение.

а что за проект вообще?

nwalker
()
Ответ на: комментарий от nanoolinux

Так он и не «обрабатывает одним актором поочередно порт и сокет». У него один актор на коннект, все верно, просто код общий для обоих.

Что я скажу... Ну, если не хочется переписать все целиком - я уже описал, как матчить надо.

Лично мне, скорее, хочется переписать. Взять, например, procket для унификации сокетов и выкинуть весь шлак.

nwalker
()
Ответ на: комментарий от nwalker

Так он и не «обрабатывает одним актором поочередно порт и сокет»

Так я и не утверждал, что он это делает. Ты это сам придумал) За procket спасибо, пригодится.

nanoolinux ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.