Перейти к содержимому

Zucker

Пользователи
  • Публикации

    44
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем Zucker


  1. Это максимальное время ожидания события. Оно указывается при вызове функций computer.pullSignal, os.sleep или event.pull

    А каким образом оно передает. Как я понял когда "сопрограмма" выполняет os.sleep(), то она каким-то образом переходит в другую программу, но как она передает _timeout ?

     

    Имел ввиду, что при вызове computer.pullSignal, os.sleep(), event.pull что происходит дальше? 


  2. Анализ библиотеки process.lua показал (по крайней мере мне), что при вызове функции process.load создается новая сопрограмма, тело которой берется из указанного файла. Создается, но не запускается. Чтобы эта сопрограмма работала, основная программа должна обмениваться с ней событиями при помощи функций coroutin.resume и coroutine.yield, каковых я в библиотеке не обнаружил.

    По поводу того, сможет ли сопрограмма выводить на экран или делать что еще. Всё зависит от того, что ей разрешить в окружении. Если в окружении будет указано {term=term}, то наверное сможет выводить на экран.

    Но, как сказал Фингер, это похоже системная либа и прикладного применения, скорее всего не найдет.

    Спасибо, класс.


  3. Как я понял, API может быть нужна для какой-то мультифайловой программе, где какой-то основной скрипт вызывает другой в отдельном окружении, который будет выполняться отдельно от программы. То бишь, это создание ещё одного потока из совершенно другого файла, если говорить попроще. Если же необходимо в моно-файле организовать мультипоточность, рекомендую воспользоваться библиотекой thread от уважаемого @Zer0Galaxy: http://computercraft.ru/topic/634-mnogopotochnost-v-opencomputers/

    Отлично. Но что он будет деалть когда его запустит в отдельном окружении. Сможет ли вывести на тот же экран новый запущенный процесс?


  4. Мне  понравился этот сайт за очень точные ответы и решил задать еще один вопрос, на который я не в состоянии ответить.

     

    В OpenComputers есть библиотека Process API, можно ли ей воспользоваться для одновременной работы нескольких программ?


  5. hello=require("hello")
    hello.set()
    

    Только, если поменялся текст файла hello.lua, необходимо перегрузить компьютер (ОС-компьютер, не реальный) ибо ранее загружавшаяся библиотека второй раз не загружается, а берется из ОЗУ.

     

    Спасибо, Отличный ответ! Очень быстро и точно.


  6. Буду очень рад если найду решение тут, потому-что даже некуда идти.

    Вопрос:

    Как запустьить функцию из программы hello.lua в программе test?

     

    У меня есть косенькое решение и оно не правильно работает.

    ---- world----

    local hello = require("hello");

    hello.set()     -- hello(), set()

    ---------------

     

     

    ----hello.lua----

    function hello.set()

      print("Hello");

    end;

     

    --или--

     

    function set()

      print("Hello");

    end;

    ------------------

     

    При запуске программы "world"  пишет:

    attemp to index local "hello" (a boolean value)

     

    Если прописать так: print(hello.set()); в итоге все тоже самое, но когда провисываю так: print(hello); он пишет: true.

     

    API примерно по этой системе производят действия, но видать из моей программы они это делают иначе. Кто может помочь?

     

×
×
  • Создать...