Integrate BACKBEAT SDK and resolve KACHING license validation
Major integrations and fixes: - Added BACKBEAT SDK integration for P2P operation timing - Implemented beat-aware status tracking for distributed operations - Added Docker secrets support for secure license management - Resolved KACHING license validation via HTTPS/TLS - Updated docker-compose configuration for clean stack deployment - Disabled rollback policies to prevent deployment failures - Added license credential storage (CHORUS-DEV-MULTI-001) Technical improvements: - BACKBEAT P2P operation tracking with phase management - Enhanced configuration system with file-based secrets - Improved error handling for license validation - Clean separation of KACHING and CHORUS deployment stacks 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
		
							
								
								
									
										56
									
								
								vendor/github.com/nats-io/nats.go/timer.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								vendor/github.com/nats-io/nats.go/timer.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,56 @@ | ||||
| // Copyright 2017-2022 The NATS Authors | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| // http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
|  | ||||
| package nats | ||||
|  | ||||
| import ( | ||||
| 	"sync" | ||||
| 	"time" | ||||
| ) | ||||
|  | ||||
| // global pool of *time.Timer's. can be used by multiple goroutines concurrently. | ||||
| var globalTimerPool timerPool | ||||
|  | ||||
| // timerPool provides GC-able pooling of *time.Timer's. | ||||
| // can be used by multiple goroutines concurrently. | ||||
| type timerPool struct { | ||||
| 	p sync.Pool | ||||
| } | ||||
|  | ||||
| // Get returns a timer that completes after the given duration. | ||||
| func (tp *timerPool) Get(d time.Duration) *time.Timer { | ||||
| 	if t, ok := tp.p.Get().(*time.Timer); ok && t != nil { | ||||
| 		t.Reset(d) | ||||
| 		return t | ||||
| 	} | ||||
|  | ||||
| 	return time.NewTimer(d) | ||||
| } | ||||
|  | ||||
| // Put pools the given timer. | ||||
| // | ||||
| // There is no need to call t.Stop() before calling Put. | ||||
| // | ||||
| // Put will try to stop the timer before pooling. If the | ||||
| // given timer already expired, Put will read the unreceived | ||||
| // value if there is one. | ||||
| func (tp *timerPool) Put(t *time.Timer) { | ||||
| 	if !t.Stop() { | ||||
| 		select { | ||||
| 		case <-t.C: | ||||
| 		default: | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	tp.p.Put(t) | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 anthonyrawlins
					anthonyrawlins