kbus_local.go 621 B

12345678910111213141516171819202122232425262728293031
  1. // package kbus_local -- реализация локальной шины сообщений.
  2. package kbus_local
  3. import (
  4. "sync"
  5. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/kbus_base"
  6. )
  7. // Локальная шина данных.
  8. type kernelBusLocal struct {
  9. *kbus_base.KBusBase
  10. }
  11. var (
  12. bus *kernelBusLocal
  13. block sync.Mutex
  14. )
  15. // GetKernelBusLocal -- возвращает локальную шину сообщений.
  16. func GetKernelBusLocal() *kernelBusLocal {
  17. block.Lock()
  18. defer block.Unlock()
  19. if bus != nil {
  20. return bus
  21. }
  22. bus = &kernelBusLocal{
  23. KBusBase: kbus_base.GetKernelBusBase(),
  24. }
  25. return bus
  26. }