Welcome to eComStation.RU site!

Select your language: Russian English Deutch Spanish Italian Portuguese Czech Polish French

Frequently asked questions and answers:


+7-981-8529467 (Санкт-Петербург)
ru · en · de · es · it · pt · cz · pl · fr
OS/2 - это совершенно другая операционная система для PC (ArcaOS, eComStation, IBM OS/2 Warp)
Программы, новости, статьи, поддержка пользователей, оборудование, вопросы и ответы.
Что такое OS/2?  Новости  Установка  Обновление  
Применение  Будущее  Сообщество  Купить  

Новый форум про OS/2, ArcaOS, eComStation

  • обсуждаем как настроить Firefox
  • Диспетчер устройств
  • здесь можно научиться писать REXX скрипты
  • Настройка ArcaOS

Работа в OS/2 (разработка программ)

(Карта сайта)

Отчет: OS/2 совместимое оборудование




Преимущества (1)

Разработчику (1)

(Пайпы программ)

Компании: (1)

История (1):



(Барьеры и решения)

Технологии: (1)

(Применение в науке, лаборатории, ..)


Готовые решения:

Новая eComStation:

Будущее: (1)

(Ссылки на другие сайты)

(Картинка дня)

Артефакты OS/2


eCo Software Developer Connection

About DevCon
Subscription to DevCon
Budget of DevCon

eCo Software runtime
eCo Software toolkit

Development of SMP-safe applications and multi-thread applications are different things.

Start from reading SMP.INF
The SMP Programming Addendum is a detailed technical guide and reference for application programmers who which to exploit the symmetric multiprocessor support in the OS/2 operating system. It gives reference information and code examples to enable you to write source code using OS/2 functions and tools.

Useful articles


Q1: What is the difference between _beginthread and DosCreatThread?
A1: _beginthread initializes the C runtime, DosCreatThread doesn't.

When using the _beginthread and _endthread functions, you must specify the /Gm+ compiler option to use the multithread libraries.

An alternative to this function is the OS/2 DosCreateThread API. If you use DosCreateThread, you must also use a #pragma handler statement for the thread function to ensure proper C exception handling. You should also call the _fpreset function at the start of the thread to preset the 387 control status word correctly. Using DosCreateThread requires that you use _endthread to terminate the thread.

Q2: How to create SMP-safe application?
A2: Don't write to one memory address from two threads simultaneously. It's safe to do this on PC with one CPU, it's critical if you have many CPUs. Use auxiliary lock functions to avoid the problems.

Q3: How to organize SMP-safe write to file?
A3: Instead of SpeenLock we recommend use other function:

    volatile int InStatusLine = 0;
    // Use __lxchg to implement fast-RAM semaphores to serialize access 
    // to a critical resource (so that only one thread can use it at a time). 
    while (__lxchg(&InStatusLine, 1))
    // write to file here
    // restore the value
    __lxchg(&InStatusLine, 0);

Q4: Maximal quantity of threads?
A4: eComStation kernel can't create more than 4096 threads.


Обучение новичков

Отчет: OS/2 совместимое оборудование


  Почему eComStation?
Ролики и скриншоты
   eComStation для
для бизнесменов
для студентов и инженеров
для продавцов компьютеров
сообщество пользователей
Распространить программу
Описание API, библиотеки
Начать новый проект
Он-лайн каталог
Выбрать через eCo Market
   Служба поддержки
Отправить вопрос
Купить eComStation
Вопросы и ответы
Обучение новичков
© 2001 - 2021 eCo Software, All rights reserved
Сибирский Медведь технологическая компания
eComStation is a registered trademark of Serenity Systems International
OS/2 Warp is a registered trademark of IBM Corporation
ArcaOS is a registered trademark of Arca Noae


Картинка дня: