On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
постоянный участник


Пост N: 1061
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 09.01.12 00:44. Заголовок: О пользе и вреде hrb


Пример от Pritpal Bedi
 
STATIC aModules := { { "", NIL } }

FUNCTION Main()

th_threadStart( {|| MonitorScripts() } )

// The other application code

RETURN NIL


FUNCTION MonitorScripts()
LOCAL aDir, dir_
LOCAL cMask := "c:\myscripts\first_*.hrb"
LOCAL cHrb, pHrb, nHrb, n
LOCAL nLoaded := 0

DO WHILE .T.
hb_idleSleep( 60 ) // Give an interval of 10 seconds

aDir := Directory( cMask )

IF ! empty( aDir )
nHrb := 0
FOR EACH dir_ IN aDir
n := val( substr( dir_[ 1 ], at( "_", dir_[ 1 ] ) + 1 ) )
IF n > nHrb
nHrb := n
ENDIF
NEXT

IF nHrb > 0
cHrb := "c:\myscripts\first_" + hb_ntos( nHrb - 1 ) + ".hrb"
nLoaded := ascan( aModules, {|e_| e_[ 1 ] == Upper( cHrb ) } )

IF nLoaded > 0
// WHAT EXACTLY TO DO HERE,
// WHAT IS SAFER WAY ?
// WHAT WILL HAPPEN IF THE CODE
// CONTAINER HEREIN IS EXECUTING
//
// SHOULD THIS BE CALLED ANYWAY ?
// OR HB_HRB_BIND_OVERLOAD WILL DO THE TRICK
hb_hrbUnload( aModules[ nLoaded, 2 ] )

cHrb := "c:\myscripts\first_" + hb_ntos( nHrb ) + ".hrb"
pHrb := hb_hrbLoad( HB_HRB_BIND_OVERLOAD, cHrb )
IF ! empty( pHrb )
hb_mutexLock( __someMutex__ )
aModules[ nLoaded ] := { Upper( cHrb ), pHrb }
hb_mutexUnLock( __someMutex__ )
ENDIF
ELSE
cHrb := "c:\myscripts\first_" + hb_ntos( nHrb ) + ".hrb"

pHrb := hb_hrbLoad( HB_HRB_BIND_OVERLOAD, cHrb )
IF ! empty( pHrb )
hb_mutexLock( __someMutex__ )
AAdd( aModules, { Upper( cHrb ), pHrb } )
hb_mutexUnLock( __someMutex__ )
ENDIF
ENDIF
ENDIF
ENDIF
ENDDO

RETURN NIL

Кто-нибудь пользовался hrb в таком контексте и действительно, что будет?


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 4 [только новые]


постоянный участник




Пост N: 1991
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.01.12 09:14. Заголовок: Спасибо Петр за прим..


Спасибо Петр за пример. Очень интересен. Буду использовать у себя....

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1063
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 09.01.12 13:03. Заголовок: Andrey пишет: Очень..


Andrey пишет:

 цитата:
Очень интересен. Буду использовать у себя


Я не для этого его выложил
// WHAT EXACTLY TO DO HERE,
// WHAT IS SAFER WAY ?
// WHAT WILL HAPPEN IF THE CODE
// CONTAINER HEREIN IS EXECUTING
//
// SHOULD THIS BE CALLED ANYWAY ?
// OR HB_HRB_BIND_OVERLOAD WILL DO THE TRICK

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 358
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 09.01.12 13:50. Заголовок: Петр пишет: Кто-ниб..


Петр пишет:

 цитата:
Кто-нибудь пользовался hrb в таком контексте и действительно, что будет?

Нужно пробовать и смотреть что получается А лучше объяснить суть дела - чего хотим получить в результате. Насколько я понял, то Pritpal спрашивает что будет если в разных потоках из hrb загрузить функции с одинаковыми названиями, так?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1065
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 09.01.12 14:01. Заголовок: AlexMyr пишет: А лу..


AlexMyr пишет:

 цитата:
А лучше объяснить суть дела - чего хотим получить в результате.


О результате ничего не сказано.
AlexMyr пишет:

 цитата:
Насколько я понял, то Pritpal спрашивает что будет если в разных потоках из hrb загрузить функции с одинаковыми названиями, так?


Что будет если ранее загруженная функция выполняется, а тут ее (во время выполнения в другом потоке) и выгрузили или перегрузили

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 11
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет