 9bdcbe0447
			
		
	
	9bdcbe0447
	
	
	
		
			
			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>
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| //go:build !arm64 || gccgo || appengine
 | |
| // +build !arm64 gccgo appengine
 | |
| 
 | |
| package roaring
 | |
| 
 | |
| func union2by2(set1 []uint16, set2 []uint16, buffer []uint16) int {
 | |
| 	pos := 0
 | |
| 	k1 := 0
 | |
| 	k2 := 0
 | |
| 	if 0 == len(set2) {
 | |
| 		buffer = buffer[:len(set1)]
 | |
| 		copy(buffer, set1[:])
 | |
| 		return len(set1)
 | |
| 	}
 | |
| 	if 0 == len(set1) {
 | |
| 		buffer = buffer[:len(set2)]
 | |
| 		copy(buffer, set2[:])
 | |
| 		return len(set2)
 | |
| 	}
 | |
| 	s1 := set1[k1]
 | |
| 	s2 := set2[k2]
 | |
| 	buffer = buffer[:cap(buffer)]
 | |
| 	for {
 | |
| 		if s1 < s2 {
 | |
| 			buffer[pos] = s1
 | |
| 			pos++
 | |
| 			k1++
 | |
| 			if k1 >= len(set1) {
 | |
| 				copy(buffer[pos:], set2[k2:])
 | |
| 				pos += len(set2) - k2
 | |
| 				break
 | |
| 			}
 | |
| 			s1 = set1[k1]
 | |
| 		} else if s1 == s2 {
 | |
| 			buffer[pos] = s1
 | |
| 			pos++
 | |
| 			k1++
 | |
| 			k2++
 | |
| 			if k1 >= len(set1) {
 | |
| 				copy(buffer[pos:], set2[k2:])
 | |
| 				pos += len(set2) - k2
 | |
| 				break
 | |
| 			}
 | |
| 			if k2 >= len(set2) {
 | |
| 				copy(buffer[pos:], set1[k1:])
 | |
| 				pos += len(set1) - k1
 | |
| 				break
 | |
| 			}
 | |
| 			s1 = set1[k1]
 | |
| 			s2 = set2[k2]
 | |
| 		} else { // if (set1[k1]>set2[k2])
 | |
| 			buffer[pos] = s2
 | |
| 			pos++
 | |
| 			k2++
 | |
| 			if k2 >= len(set2) {
 | |
| 				copy(buffer[pos:], set1[k1:])
 | |
| 				pos += len(set1) - k1
 | |
| 				break
 | |
| 			}
 | |
| 			s2 = set2[k2]
 | |
| 		}
 | |
| 	}
 | |
| 	return pos
 | |
| }
 |