static AffinityLockInfo parse(String str) { final Matcher threadMatcher = THREAD_PATTERN.matcher(str); if (threadMatcher.matches()) { final int cpuId = Integer.parseInt(threadMatcher.group(1)); final String name = threadMatcher.group(2); final int priority = Integer.parseInt(threadMatcher.group(3)); final String parentName = threadMatcher.group(4); final boolean alive = Boolean.parseBoolean(threadMatcher.group(5)); final ThreadInfo threadInfo = ThreadInfo.create(cpuId, priority, name, parentName, alive); return AffinityLockInfo.create(threadInfo); } final Matcher noThreadMatcher = NO_THREAD_PATTERN.matcher(str); checkArgument(noThreadMatcher.matches(), "Invalid input: %s.", str); final int cpuId = Integer.parseInt(noThreadMatcher.group(1)); final boolean availableForApp = noThreadMatcher.group(2).equals(RESERVED_4_APP); return AffinityLockInfo.create(cpuId, availableForApp); }
@Nonnull @Override public ThreadInfo apply(@Nullable AffinityLockInfo input) { return verifyNotNull(input).getThreadInfo().get(); } }).toList();
final ThreadInfo ti2 = getReservations().get(0).getThreadInfo().get(); assertThat(ti2.getCpuId()).isGreaterThan(0); assertThat(ti2.isAlive()).isTrue(); Thread.sleep(200L); assertThat(getReservations()).hasSize(1); final ThreadInfo ti3 = getReservations().get(0).getThreadInfo().get(); assertThat(ti3.getCpuId()).isGreaterThan(0); assertThat(ti3.isAlive()).isTrue();
@Override public boolean apply(@Nullable AffinityLockInfo input) { final AffinityLockInfo in = verifyNotNull(input); return in.getThreadInfo().isPresent() && in.getThreadInfo().get().getName().equals(name); } }).transform(new Function<AffinityLockInfo, ThreadInfo>() {
@Override public boolean apply(@Nullable AffinityLockInfo input) { return verifyNotNull(input).getThreadInfo().isPresent(); } })