Неограниченный размер стека с pthreads

С помощью zshможно сделать:

cdd() cd -- **/$1(/Od[1])

cdd themes

Эта функция cddнаходит все файлы типа каталога(/)с именем, заданным в качестве аргумента ($1), Oупорядочивает их по depth и выбирает первый([1]).

Не очень эффективным является то, что он сканирует все дерево каталогов (, пропуская скрытые каталоги, добавьте квалификатор Dglob, чтобы изменить это ), даже если в текущем каталоге есть соответствующий каталог.

Чтобы пройти по дереву каталогов на один уровень глубины за раз, вы можете вместо этого:

cdd() {
  local dirs matches
  dirs=(.)
  while (($#dirs)) {
    matches=($^dirs/$1(N/[1]))
    if (($#matches)) {
      cd $matches[1]
      return
    }
    dirs=($^dirs/*(/N))
  }
  print >&2 Not found
  return 1
}
3
20.11.2020, 19:34
1 ответ

Поскольку для потоков "неограниченный" дает вам только 2 МБ на x86 _64, см.pthread_createсправочную страницу:

If the RLIMIT_STACK resource limit is set to "unlimited", a per-architecture value is used 
for the stack size.  Here is the value for a few architectures:

              ┌─────────────┬────────────────────┐
              │Architecture │ Default stack size │
              ├─────────────┼────────────────────┤
              │i386         │               2 MB │
              ├─────────────┼────────────────────┤
              │IA-64        │              32 MB │
              ├─────────────┼────────────────────┤
              │PowerPC      │               4 MB │
              ├─────────────┼────────────────────┤
              │S/390        │               2 MB │
              ├─────────────┼────────────────────┤
              │Sparc-32     │               2 MB │
              ├─────────────┼────────────────────┤
              │Sparc-64     │               4 MB │
              ├─────────────┼────────────────────┤
              │x86_64       │               2 MB │
              └─────────────┴────────────────────┘
5
18.03.2021, 22:48

Теги

Похожие вопросы